2009-07-19 5 views
1

이봐, 우리는 (분명히) 많은 UITableViewCell을 가지고있는 UITableView가 있습니다. 사용자가 셀을 터치하면 셀이 커지고 더 많은 정보를 표시 할 수 있도록 액션을 구현해야합니다. 사용자가 셀을 다시 터치하면 다시 원래 크기로 크기가 조정됩니다. iphone dev : 동적으로 크기를 조정하십시오. UITableView

우리는이 같은 셀의 프레임의 높이를 변경하여이를 구현 할 수 있었다 : 또한

CGRect newFrameTemp = self.frame; 
newFrameTemp.size.height +=textHeight; 
self.frame = newFrameTemp; 

아래 다른 모든 세포에게 textHeight 픽셀 이동. (그리고 테이블 자체의 크기도 변경)

이것은 '터치'이벤트가 셀과 함께 움직이지 않는다는 것만으로 작동하는 것처럼 보였습니다. 다음 셀을 터치하고 싶다면 실제로 우리가 방금 열어 본 셀의 중간

우리가 잘못하고있는 어떤 단서가 있습니까?

답변

1

아마도 UITableViewDelegate 방법을 사용하여 높이를 조정하려고 :

– tableView:heightForRowAtIndexPath: 

http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDelegate

이것은 제대로 히트 영역을 조정할 수 있습니다.

편집 : 난 그냥 관련이있을 수이 링크를 가로 질러 : http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/

+0

헤이 벤, 우리가 실제로 그 시도했고 그것이 작동하지 않았다, 그러나 우리는 다시 시도합니다 ... –

+0

이봐, 잘, 아니. 작동하지 않습니다. heightForRowAtIndexPath는 테이블 생성시에만 호출됩니다. 우리가하고있는 일은 사용자가 셀의 높이를 동적으로 변경하는 것입니다. –

+1

확실히 tableView : heightForRowAtIndexPath : 테이블 뷰를 다시로드 할 때 호출됩니까? 해당 메서드의 높이를 조정 한 다음 [tableView reloadData] 호출 아마도? –

관련 문제