셀 높이가 설정되면 이해하려고 시도합니다. 코드가 아니라 레이아웃으로 만든 UITableView가 있습니다. 이어서UITableView 셀 높이 설정 수명주기
:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Setting row height");
return TABLE_VIEW_ROW_HEIGHT;
}
및
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Row height: %f", tableView.rowHeight);
// ... other happy stuff that does not change row height but could sure use the real row height
마지막 NSLog 그 메소드 내의 코드를 필요로하는 것을 의미하는 44보다는 100 리포트 :
#define TABLE_VIEW_ROW_HEIGHT 100.0
얹는 행 높이를 얻으려면 실제 높이를 사용하지 않는 것이 좋습니다.
내가 확인한 그 (44)
의 결과로, 행이 원하는 크기가
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
실행,
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
전에 그리고이 아닌 기본 크기 높이를 명시 적으로 설정해야합니까? 조사를 수행 한 후
EDIT은 :
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
...보다 적절 모든 행이 동일한 높이 일 때의 행의 높이를 설정하기 위해 사용된다. 나는 잘못해서 모든 행을 같은 높이로 설정했다.
을 수행하는 올바른 방법은 어딘가에있는 viewDidLoad 등으로부터 ...
the_tableview.rowHeight = TABLE_VIEW_ROW_HEIGHT;
를 호출하는 것입니다. 사실 (코드 생략)했지만 실제로 작동하지 않았습니다. 오늘 밤 나는 이것이 그래픽 레이아웃 도구에 의한 또 하나의 인스턴스라는 것을 깨달았습니다 ... IBOutlet을 UITableView에 연결하는 것을 잊었습니다 ... 그래서 코드는 아무 것도하지 않았고 전체 tableview는 기본 높이 44로 유지되었습니다. 그래서 NSLog에서 44 명이 나왔습니다.
답변을 수락하지만 원본 게시물 (내 생각에 내가 그 이상으로 뛰어든 후 깨달은 것)에 대한 편집을 참조하겠습니다. –
설정이 제대로되어 있다고 가정하면 정의 된 값을 반환하지만 결과를 얻는 데 효율이 떨어지는 경우 heightForRowAtIndexPath를 사용하여 모든 행의 높이를 설정하면됩니다. –