在iOS 8中,我们有机会使用名为估计大小的属性flowlayout创建自动调整大小的单元格。 但在我的情况下,我想手动使用这个机会。 但不明白怎么样? 在委托sizeForItemAtIndexPath的方法中,我无法调用dequeueReusableCellWithReuseIdentifier,因为我收到错误
[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array
我无法理解,如何在cellForItemAtIndexPath之前获取sizeForItemAtIndexPath中的单元格大小?
它是如何进行collectionViewFlowLayout的?
同样在iOS 8中,我们获得了systemLayoutSizeFittingSize,但它也适用于已创建的单元格。
答案 0 :(得分:0)
我发现可能是一个解决方案
+ (CGSize)sizeForViewFromNib:(NSString *)nibName width:(CGFloat)width userData:(id)userData {
UIView *view = viewFromNib(nibName, nil);
[view configForUserData:userData];
CGSize size = [view systemLayoutSizeFittingSize:CGSizeMake(width, SOME_MIN_SIZE) withHorizontalFittingPriority:UILayoutPriorityRequired verticalFittingPriority:UILayoutPriorityFittingSizeLevel];
return CGSizeMake(width, size.height);
}
点这里是 UIView * view = viewFromNib(nibName,nil);