nscollectionview awakeFromNib vs cellForItemAtIndexPath相同的代码以不同的方式显示图像

时间:2016-05-16 12:02:08

标签: ios uiimage aspect-ratio

我正在使用awakeFromNib来设置带有此代码的图像

self.cellImage01 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mushroom_risotto.jpg"]];
self.cellImage01.frame = CGRectMake(0.0, 0.0, self.frame.size.width, self.frame.size.height);
self.cellImage01.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
self.cellImage01.contentMode = UIViewContentModeScaleAspectFit;

然后我需要indexPath从它的数据源获取图像信息,所以我将代码从awakeFromNib移动到cellForItemAtIndexPath。现在它以不同的方式显示

  1. 它没有相同的scaleAspectFit
  2. 去景观会把它改成图片的一小部分。
  3. 小切片图像仅在单元格离开视图,然后返回视图时发生。

    我正在使用细胞重用,这似乎是事情发生变化的地方,但我无法访问代码以查看正在发生的事情。

    有没有人知道它通过细胞重用的调用堆栈?

    为什么方面在awakeFromNib中工作而不在cellForItemAtIndexPath中?

    这里的常见元素是cellForItemAtIndexPath首先调用它:

    ArticleCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ArticleCollectionViewCell" forIndexPath:indexPath];
    

    编辑:我应该注意到它在awakeFromNib中调用时显示正确。

0 个答案:

没有答案