7
다른 사용자 정의 셀이 포함 된 컬렉션 뷰가 있습니다.UICollectionView : UICollectionViewCell 객체는 sizeForItemAtIndexPath에서 항상 null입니다.
이 셀에는 크기가 다른 내용이 들어 있습니다.
셀은 스토리 보드에 정의되어 있으므로 코드에 등록 할 필요가 없습니다.
내가 지금하고 싶은 모든
은 내용에 따라 위임 방법의 크기를 변경할 수 있습니다 : 모든 셀에 대해 예상대로라고- (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의 경우, line과 textlength로 높이를 계산해야합니다. 그리고 그것은 매우 부정확 할 것입니다. – crud21
오른쪽. 내용에 따라 셀 크기를 계산하는 방법을 찾을 수 있지만 셀보기에 의존 할 수는 없습니다. (예 :'NSString'은 텍스트 크기를 얻기위한 메소드를 제공합니다.) – chris
이것은 바보스럽고 불행합니다. 아직 존재하지 않는 셀을 요청하면 'UITableView'가 데이터 소스로 이동하지 않고 셀을 가져 오지 않습니다. ? – jtbandes