如何从FlowLayout手动使用estimatedSize

时间:2015-04-06 01:48:42

标签: ios8 uicollectionview size uicollectionviewcell uicollectionviewlayout

在iOS 8中,我们有机会使用名为估计大小的属性flowlayout创建自动调整大小的单元格。 但在我的情况下,我想手动使用这个机会。 但不明白怎么样? 在委托sizeForItemAtIndexPath的方法中,我无法调用dequeueReusableCellWithReuseIdentifier,因为我收到错误

[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array

我无法理解,如何在cellForItemAtIndexPath之前获取sizeForItemAtIndexPath中的单元格大小?

它是如何进行collectionViewFlowLayout的?

同样在iOS 8中,我们获得了systemLayoutSizeFittingSize,但它也适用于已创建的单元格。

1 个答案:

答案 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);