extension DashboardView: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return recents.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return contents.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let recent = recents[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell") as! RecentCell
cell .setRecent(recent: recent)
cell.delegate = self
return cell
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let content = contents[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "ContentCell") as! ContentCell
cell .setContent(content: content)
cell.delegate = self
return cell
}
}
我尝试创建其他扩展程序,但不起作用
我尝试创建其他扩展程序,但不起作用
您需要更改cellForRowAt
具有不同布局用途的第一个单元格的 e.x
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let recent = recents[indexPath.row]
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell1") as! RecentCell1
cell .setRecent(recent: recent)
cell.delegate = self
return cell
}
else {
let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell2") as! RecentCell2
cell .setRecent(recent: recent)
cell.delegate = self
return cell
}
}
您需要根据需要返回单元格,如下所示。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let info = arrOffers[indexPath.row]
switch info.valueForString(key: "type") {
case "coupon":
if let cell = tableView.dequeueReusableCell(withIdentifier: "OfferCouponTblCell") as? OfferCouponTblCell {
cell.configure(info)
return cell
}
default:
if let cell = tableView.dequeueReusableCell(withIdentifier: "PaymentOfferTblCell") as? PaymentOfferTblCell {
cell.configure(info)
return cell
}
}
}
如果你想看到两个数组,你可以在numberOfRowsInSection 函数中添加两个数组。但不要忘记索引可以在cellForRowAt 函数中更改。我假设最近的计数是 1。
extension DashboardView: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return recents.count + contents.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let recent = recents[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "ContentCell") as! ContentCell
cell.setContent(content: content)
cell.delegate = self as? ContentCellDelegate
return cell
}
else {
let content = contents[indexPath.row - 1]
let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell") as! RecentCell
cell.setRecent(recent: recent)
cell.delegate = self
return cell
}
}
}
通过应用此方法,我只看到一个值
extension DashboardView: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return recents.count
// return contents.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let recent = recents[indexPath.row]
let content = contents[indexPath.row]
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "ContentCell") as! ContentCell
cell.setContent(content: content)
cell.delegate = self as? ContentCellDelegate
return cell
}
else {
let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell") as! RecentCell
cell.setRecent(recent: recent)
cell.delegate = self
return cell
}
}
}
在此处输入图像描述
您在屏幕截图中看到的值只是内容单元格的值