2009-10-14 3 views
0

하위 뷰로 그룹화 된 UITableView가있는 UIView (IB로 작성)가 있습니다. 이 테이블 뷰 아래에는 UIButton이 있습니다. 뷰를 포함하는 XIB는 몇 가지 다른 뷰 컨트롤러에 의해로드되므로 테이블 뷰의 내용은 1 ~ 4 개의 셀에서 다를 수 있습니다.UITableView (UITableViewCell 아님)의 크기가 가변적입니까?

다음과 같이하면됩니다. 뷰를로드 할 때 테이블 뷰의 높이 (tableView.frame.size.height)를 셀 수에 따라 조정해야하며 단추는 테이블 바로 아래에 배치해야합니다 전망.

이 작업을 수행 할 수 있습니까? 뷰가 프로그래밍 방식으로 생성 된 경우 어떻게 든 수행 할 수 있습니까? 사전에

감사

편집 : PXL의 제안은 내가 찾던 그냥 뭐이었다. 잠시 후, 테이블 뷰 아래에 단추 하나 이상이 있어야하는 필요성이 생겼습니다. 필요한 모든 것을 포함하는 별도의 뷰를 만들고 tableView : viewForFooterInSection : 및 tableView : heightForFooterInSection : 함수를 구현하여이 작업을 수행했습니다.

동일한 작업을 수행하려는 사용자를위한 메모 : 바닥 글의 높이가 다른 경우 또는 일부 섹션의 바닥 글이 필요한 경우 tableview를 프로그래밍 방식으로 만들어야합니다. 이는 IB에서 설정 한 바닥 글 높이가 tableView : heightForFooterInSection : 함수에서 반환 된 바닥 글 높이를 무시하기 때문입니다.

답변

2

소수의 행만있는 경우 단추가 포함 된 특별한 UITableViewCell을 만드는 것이 좋습니다.

그런 다음 해당 버튼 셀을 마지막 그룹의 맨 아래 행으로 만듭니다. 단추가 테이블보기의 맨 아래에있는 것처럼 레이블이 지정되지 않도록 그룹을 만듭니다. 이렇게하면 테이블 뷰의 프레임을 다시 계산하고 다시 그려 넣을 필요가 없습니다.

행 수가 많아서 tableview가 스크롤되는 경우 tableview의 높이를 최대 (테이블 뷰를 스크롤하여 더 많은 행을 표시해야하는 지점)까지 계산할 수 있습니다.

행을 표시하고, 적절한 크기의 프레임을 만들고, tableview의 프레임을 설정하고, tableview 바로 아래에 단추를 배치하고, 전망.

이 경우 레이아웃과 위치 지정은 프로그래밍 방식으로 수행해야합니다.

UITableview는 UIView의 하위 클래스이므로 UIView와 같이 사용자의 필요에 맞게 프레임을 변경할 수 있으며 UITableView는 사용자가 지정한 프레임을 그대로 그리기 관리합니다.

0

그냥 UITableViewDataSource 및 UITableViewDelegate 메소드를 사용하면됩니다.

height = [self tableView:numberOfRowsInSection]*[self tableView:heightForRowAtIndexPath:] + A_CONSTANT_FOR_HEADER_AND_FOOTER_HEIGHT 
0

나는 거기에 버튼으로 셀을 추가하는 것은 당신이 원하는 것을 달성 할 수있는 가장 쉬운 방법이 될 수 pxl에 동의합니다.

테이블 뷰의 sizeToFit 메서드 의 내용을보기에 맞게 조정해야합니다. 그래도 작동하지 않으면 numberOfSectionsrectForSection:을 사용하여 테이블의 내용 높이를 결정하는 루프를 만들고 해당 프레임을 수동으로 다시 설정할 수 있습니다. (그리고 단추를 아래에 위치 시키십시오.)

관련 문제