UITableView 的单元格之间的广告,它使用核心数据和 NSFetchedResultsController

Ads between cells of UITableView which uses Core Data with NSFetchedResultsController

(我已经提到了,但是没有找到我要找的东西)

我需要在 UITableView 的单元格之间展示广告。

上图仅供参考,并未显示我正在使用的应用实际使用的design/data。

UITableView 的正常单元格来自使用 fetchController.object(at: indexPath) 通过 NSFetchedResultsControllerCore Data 获取请求,而广告单元格则完全来自不同的数据源。

请告诉我是否有有效处理所有这些极端情况的方法,最好不要更改 fetchController.object(at: indexPath).

中使用的 indexPath 对象

您可以在 table 视图单元格中添加一个标记 class,告诉您是否显示广告:

class MyTableViewCell: UITableViewCell {
    var showAd: Bool = false {
        didSet {
            // `adView` here being either an IBOutlet from the XIB,
            // or a programatically created view, depending on how
            // you designed the cell
            adView.isHidden = !showAd
        }
    }
}

完成上述内容后,剩下的就是存储一个 数组,您要在其中展示广告,并相应地更新单元格:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = ...
    cell.showAd = adIndices.contains(indexPath.row)
    return cell
}