모든 화면에서 테이블 뷰를 사용하는 애플리케이션이 있습니다. 나는 각기 다른 높이를 가진 커스텀 셀을 많이 가지고있다. 지금 높이를 계산하는 것은 꽤 어려운 일입니다. heightForRowAtIndex를 사용하지 않고 각 사용자 지정 셀의 높이를 반환하는 제네릭 메서드를 찾고 있습니다. 이유는 하나의 셀 뒤에 xibs가 4 개 있기 때문에 heightForRowAtIndex를 사용하지 않으려 고합니다.이 메토를 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {}
검사 종류로 처리하고 싶지 않기 때문입니다. 기록을 위해 세포 xibs 영어 및 아랍어 버전 모두 아이폰, 아이 패드 같습니다
cell_ar.xib
cell_ar ~ ipad.xib 현재
IOS가 사용자 정의 셀의 테이블 뷰 행 높이를 계산합니다.
ipad.xib, 내가 노력하고
cell_en.xib
cell_en ~ 수행원;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { switch (indexPath.row) { case 0: { VPCell1 *cell=[VPCell1 cellForTable:tableView withOwner:self]; [tableView setRowHeight:CGRectGetHeight(cell.contentView.frame)]; return cell; } case 1: { VPCell2 *cell=[VPCell2 cellForTable:tableView withOwner:self]; [tableView setRowHeight:CGRectGetHeight(cell.contentView.frame)]; return cell; } case 2: { VPCell3 *cell=[VPCell3 cellForTable:tableView withOwner:self]; [tableView setRowHeight:CGRectGetHeight(cell.contentView.frame)]; return cell; } } }여기서 I는
[tableView setRowHeight:CGRectGetHeight(cell.contentView.frame)];
각 셀의 행의 높이를 설정하기 위해 사용하고있다.
tableview 내의 모든 셀의 높이가 같을 경우 setRowHeight 메서드를 사용해야하므로 성능 최적화를 위해 여기서는 선택 사항이 아닙니다. 나는이 혼란을 해결하기위한 아이디어에 열려있다.
감사합니다.
어? 행 높이를 설정하려면 heightForRowAtIndexPath를 사용해야합니다. –
아한, 예를 들어 20 개의 화면에 맞춤형 셀을 사용하고 있습니다. 높이에 따라 xib 파일을 변경해야한다고 가정하면,이 변경을 위해 각 tableviewcontroller 내부의 셀 높이를 변경해야한다고 제안합니다. 그 고통스러운 접근 방식은 그렇지 않습니까? –