2013-06-19 5 views
1

webservice에서 가져온 내용을 표시하는 tableviews를 사용하는 응용 프로그램에서 작업하고 있습니다. 일부 셀에서는 크기가 알려지지 않은 이미지를 표시해야 할 수도 있습니다. 이렇게하려면 UIImageView 고정 된 너비 (292pts) 셀 안에 있습니다. 그런 다음 이미지 뷰 높이를 적절하게 조정합니다.변경 후 UITableViewCell 높이

imageviewheight = 292/IMAGEWIDTH * imageheight 예

, I *이 1,250 730 I 종횡비를 유지하고 전체 이미지를 표시 (500)의 높이로 설정되어, 이미지가.

그러나 셀 높이를 설정해야 할 때 문제가 될 수 있습니다. 이미지가 인터넷에서 다운로드되기 때문에 셀을 만들어야 할 때 이미지 다운로드가 완료되지 않았을 수 있습니다. 따라서 이미지를 다운로드 할 때까지 셀 높이를 확인할 수 없으며 UI를 기다릴 수 없어 대신 자리 표시 자 이미지를 표시하고 셀 높이는 높이를 기준으로합니다.

이미지가 다운로드되면 이미지보기에 표시해야합니다. 높이가 자리 표시 자 이미지의 높이와 일치하면 괜찮습니다. 그렇지 않으면 보정 할 이미지 뷰 높이를 조정해야하며 셀 높이도 변경해야합니다. 그러나 문제는 세포가 만들어지면 높이를 바꿀 수 없다는 것입니다.

제가 생각할 수있는 유일한 해결책은 UIImage를 저장하고 셀을 다시로드하는 것입니다. 그런 다음 이미지가 이미 있으므로 이미지를 기반으로 셀 높이를 설정할 수 있습니다. 그러나 이것은 매우 비효율적 인 솔루션처럼 보입니다. 생성 된 후에 셀 높이를 조정하는 방법이 있습니까? 셀의 프레임을 변경하려고했지만 아무 것도하지 않았습니다. 생성 후 셀 높이를 변경하거나 유일한 방법을 다시로드하는 방법이 있습니까?

+1

나는 이것이 당신을 도울 것이라고 생각한다 [click here] (http://stackoverflow.com/questions/7194136/how-do-i-change-the-height-of-a-uitableview-to-fit-its- 동적 콘텐츠). 희망이 있습니다. – keen

+0

CellforrowatindexPath를 사용하기 전에 셀 높이를 설정해야합니다. 이미지의 정보를 가져 와서 해당 이미지를 배열에 배치하고 해당 배열로 tableview를 채우고 인덱스 행의 높이를 계산하면 배열에서 그 색인에 대한 이미지 높이 .. 희망 당신은 왜 –

+0

당신은 이미지의 높이와 너비를 고정하지 설정하는 데 도움이 될까? –

답변

1

이미지를로드했으면 UITableViewDelegate- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath의 행에 대해 올바른 새 높이를 반환해야합니다. 해당 행의 높이 값을 다시 확인하려면 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation으로 전화해야 할 수 있습니다.

관련 문제