0

在iOS 8中,我們有機會使用稱爲估計大小的屬性flowlayout創建自動調整大小的單元格。 但在我的情況下,我想手動使用這個機會。 但無法理解如何? 在委託sizeForItemAtIndexPath的方法,我不能叫dequeueReusableCellWithReuseIdentifier,因爲我得到錯誤如何從FlowLayout手動使用estimatedSize

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

我不明白,我怎麼可以cellForItemAtIndexPath前sizeForItemAtIndexPath獲得小區的大小?

它是如何做collectionViewFlowLayout?

同樣在iOS 8中,我們獲得了systemLayoutSizeFittingSize,但它也適用於已經創建的單元格。

回答

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 *視圖= viewFromNib(nibName,無);