【问题标题】:UICollectionView glitches on scrollUICollectionView 在滚动时出现故障
【发布时间】:2019-10-06 09:50:41
【问题描述】:

我正在实现 UICollectionView 以在屏幕上加载所有联系信息。保持主线程和后台线程干净,我在 collectionview 上加载数据。现在,一旦加载数据并开始滚动,它就会给我带来极端的帧延迟/抖动。我不确定为什么会这样。我所有的数据源都在后台线程中。

下面是代码:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let data : PhoneContact!
    data = allContacts[indexPath.row]
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: friendsCellID, for: indexPath) as! FriendsCell
    cell.label.text = data.name
    return cell
}

// Cell has only label
override init(frame: CGRect) {
    super.init(frame: frame)
    backgroundColor = UIColor(rgb: (r: 232, g: 231, b: 222))
    setLabel()
}

allContact 有一个 getter,它每次都从电话簿中获取联系人。我想这可能是个问题。但不确定。我可以看看它吗?我想我并没有在考虑什么并最终得出了错误的结果。

【问题讨论】:

    标签: ios arrays swift uicollectionview contacts


    【解决方案1】:

    您的示例是UICollectionViewController,而不是UITableViewController。如果您使用了UITableViewController,您可以尝试实现UITableViewDataSourcePrefetching 委托来处理长时间运行的操作,但我不认为这就是这里发生的事情。

    如果您要从情节提要的集合视图中取出一个单元格,则您应该为其设置一个初始化程序。相反,由于您在初始化程序中所做的只是设置标签和背景颜色,这应该在情节提要中完成,并且应该在单元格与其标签之间连接一个出口。

    【讨论】:

    • 我很抱歉造成混乱。编辑了问题。另外,它没有故事板。全部以编程方式。
    猜你喜欢
    • 2013-12-03
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2021-01-12
    相关资源
    最近更新 更多