UITableViewCell内的UICollectionView滚动滞后(闪烁)

时间:2018-09-12 08:38:21

标签: ios swift uitableview uicollectionview reloaddata

我已经实现了一个类似于Appstore / Netflix的UI,其中有一个UITableView,并且在每个(自定义)单元中都有一个UICollectionView水平滚动。

每个UITableView单元用作其collectionView的委托和数据源。数据由tableView单元格内的变量保存,该变量是在tableView的cellForRow调用期间设置的。

设置新变量后,didSet会执行一些操作并调用collectionView.ReloadData(),以便collectionView反映当前数据。这可能导致滚动时出现延迟,这可能是由于每个collectionView.ReloadData()调用所致。

数据是带有一些元数据的结构,内容本身位于数组中。

cellForRow:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: contentTableCellId, for: indexPath) as! ContentTableCell
    cell.contentItem = contentItems[indexPath.row]
    return cell
}

以及ContentTableCell内:

    var contentItem: ContentItem!{
    didSet{
        ... //some simple text label actions.
        self.collectionView.reloadData()
    }
}

0 个答案:

没有答案
相关问题