동적 높이가있는 셀로 컬렉션보기를 구현하려고합니다.UICollectionViewCell UITextView 글꼴에 따른 동적 높이 lineHeight
수집 뷰 셀의 일부 UITextView 포함은 UITextViews 그들의 높이 이렇게 구성한 :
[textViewHeightConstraint setConstant: numberOfRowsToDisplay * [[textView font] lineHeight]];
텍스트 뷰 특정 .xib에있는 다른보기의 하위 뷰이 XIB도이다 셀이 대기열에서 제외 될 때 (collectionView : cellForItemAtIndexPath :가 호출 될 때) 셀의 하위보기로 추가됩니다.
하지만 "collectionView : sizeForItemAtIndexPath :"메서드에서 셀 인스턴스에 액세스 할 수없는 셀 높이를 반환해야하므로 textview : [textView font] lineHeight 속성에 액세스 할 수 없습니다.
어떻게 해결할 수 있습니까?
추신 : textview는 비어 있으므로 높이가 NSWString에 종속되지 않으며 sizeWithFont : 메서드를 호출 할 수 있으며 텍스트 뷰 높이를 하드 코딩 할 수 없습니다. "numberOfRowsToDisplay"는 런타임에 검색되며 textView 글꼴도 하드 코드되지 않습니다.
편집 : 이미 호출하려고 "forIndexPath : dequeueReusableCellWithReuseIdentifier"에서 "collectionView : sizeForItemAtIndexPath"나는 호출 것처럼있어서, 그것은 무한 루프를 생성 "cellForItemAtIndexPath : collectionView를".
셀에 액세스하려고하면 안됩니다. 특정 indexPath에 대한 numberOfRowsToDisplay 값에 대한 데이터 소스를 쿼리해야합니다. 셀은 데이터를 표시하기위한 것이지 공급을위한 것이 아닙니다. – rdelmar
네,'UITableView'로 할 수있는 것처럼 높이 계산을 위해 임의로 셀을 큐에서 제거 할 수 없습니다. 매우 짜증나. –
@rdelmar 그것은 검색하기 어려운 "numberOfRowsToDisplay"가 아니며, textView의 lineHeight이고 textView는 셀에 있으므로 글꼴 속성에 액세스 할 수 없습니다. – LiohAu