2013-07-31 4 views
0

CHTCollectionViewWaterfallLayout을 사용하여 물이 떨어지는 레이아웃을 만들고 싶습니다. 나는 데모에서 세포 높이가 고정되어 배열에 있음을 알았다. 하지만 지금은 이미지 URL이 있는데 화면에 표시하고 싶지만 높이는 알 수 없습니다. 따라서 heightForItemAtIndexPath 데이터 소스가 작동하지 않습니다. 다운로드되기 전에 이미지 URL의 높이를 계산하는 법. 또는 height를 계산하고 heightForItemAtIndexPath 데이터 소스 메서드에서 셀 높이를 설정하는 동안 cellForItemAtIndexPath 데이터 소스 메서드에서 이미지를 다운로드하고 표시 할 수 있습니까? 그렇게하는 방법?Calc UICollectionViewCell 인터넷에서 이미지를 다운로드하는 동안 높이

답변

2

자신의 서버에서 이미지를 다운로드 한 경우 먼저 이미지 크기를 나타내는 메타 데이터를 보내고 이미지를 다운로드하기 전에 높이를 계산하는 데 사용하는 것이 좋습니다.

이미지가 서버에없는 경우 가장 적합한 해결책은 해당 이미지가 다운로드되었는지 여부를 나타내는 BOOL 배열을 추가하는 것입니다. 다운로드 한 경우 높이를 조정하고 그렇지 않은 경우 기본 높이를 사용하십시오.

그리고 이미지가로드 된 다음 메소드를 호출하여 셀에 위임 추가

- (void) ImageLoadedAtIndexPath:(NSIndexPath)indexPath { 

    [self.tableView beginUpdates]; 
    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone]; 
    [self.tableView endUpdates]; 

} 

는 희망이 도움을.

+0

이미지가 cellForItemAtIndexPath에서 다운로드 중입니다. 즉, 높이가 이미 계산 된 것입니다. 이미지 만이 게으른로드입니다. –

+0

업데이트 된 답변을 확인하십시오. – MuhammadBassio

+0

reloadRowsAtIndexPaths가 셀 높이를 변경합니까? –

관련 문제