gpt4 book ai didi

ios - viewWillAppear 在 cellForItemAtIndexPath 之后调用?

转载 作者:行者123 更新时间:2023-11-29 02:31:00 24 4
gpt4 key购买 nike

当我快速滑动时,我的一个带有 UICollectionViewUIViewController 会崩溃。它在 let option = self.options[indexPath.row]崩溃:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

let cell= collectionView.dequeueReusableCellWithReuseIdentifier("optionCell", forIndexPath: indexPath) as MyCell

let option = self.options[indexPath.row]
return cell
}

我发现问题是self.options有时没有创建成功。我在 viewWillAppear 中创建 self.options:

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)

self.options = ...
}

有两种可能:

  1. viewWillAppear 根本没有被调用
  2. viewWillAppear 将在 cellForItemAtIndexPath 之后调用

我是否遗漏了代码中的任何内容?谢谢

最佳答案

在默认实现中,collectionView:cellForItemAtIndexPath: 将在 viewWillAppear: 之后被调用。

但是,collectionView:cellForItemAtIndexPath: 最初是由调用 [UICollectionView -layoutSubviews] 触发的。您可能正在做其他事情来调用此方法,这解释了您所看到的行为。如果需要,您可以在 collectionView:cellForItemAtIndexPath: 中设置一个断点,然后查看堆栈跟踪以了解调用它的原因。

关于ios - viewWillAppear 在 cellForItemAtIndexPath 之后调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com