7
我有一個包含不同自定義單元格的集合視圖。UICollectionView:UICollectionViewCell對象在sizeForItemAtIndexPath中始終爲空
這些單元格包含大小不同的不同內容。
單元格在故事板中定義,因此在代碼中不需要註冊。
所有我現在要做的是改變取決於內容的委託方法大小:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
id cellAtIndexPath = [collectionView cellForItemAtIndexPath:indexPath];
NSLog(@"The cell: %@", cellAtIndexPath);
...
e.g. calling sizeToFit methods and cumulating the sizes of the cells' subviews
...
}
的方法如預期的每一個細胞都被調用,但cellAtIndexPath總是返回NULL,不管我試過。 所以我無法訪問indexPath或其內容視圖中的單元格對象。
任何建議爲什麼我不能訪問單元格對象?
謝謝!所以,從這個角度來看,不可能根據子視圖來設置不同的單元高度(通常調用sizeToFit來計算它)? 根據它們的內容,是不是有可能「調整」單元的大小?例如。對於UILabels,你將不得不通過行和文本長度來計算高度。而這將是非常不準確的。 – crud21
對。您可能會找到計算單元格大小的方法(如果它取決於其內容),但不能依賴單元格視圖。 (例如'NSString'提供了獲取文本大小的方法。) – chris
這很愚蠢和不幸......如果你問它是否還不存在的單元格,UITableView'不會去數據源並獲取單元格? – jtbandes