을 오버라이드하여 정적 인 UITableViewCell
을 숨기는 방법에 대한 많은 예제를 살펴 봤습니다. 지금은 제대로 작동하지는 않지만, 내가 뭔가 잘못하고 있는지보고 싶어서 너무 성가시다.heightForRowAtIndexPath를 재정 의하여 가능한 경우에만 정적 UITableViewCell의 높이를 변경 하시겠습니까?
나는 약 8 개의 행이있는 테이블보기가있는 UITableViewController
입니다. 내 애플 리케이션 의이 화면은 하나의 개체를 보여줍니다, 예를 들어 한 행은 설명, 하나는 이미지, 하나는지도보기를 보유하고 있습니다. 모든 행은 정적입니다.
표시되는 개체 중 일부에지도가 없기 때문에 mapview
이 들어있는 행을 숨기려고합니다. 정적 행이므로 해당 행의 콘센트 속성 (예 : @property (weak, nonatomic) IBOutlet UITableViewCell *mapViewRow;
)을 사용하면 그 행의 높이를 0으로 설정하거나 viewDidLoad
또는 viewWillAppear
행을 숨길 수 있습니다. 그러나이 작업을 수행하는 유일한 방법은 heightForRowAtIndexPath
메서드를 재정의하는 것입니다.이 코드는 내 코드에서지도 행의 인덱스를 하드 코딩해야하기 때문에 일종의 성가신 방법입니다 (예 : 그것은 처음에 스토리 보드에서 그들을 설정하는 점을 패배처럼 물론
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 6 && self.displayItem.shouldHideMap) {
return 0;
}
return [super tableView:tableView heightForRowAtIndexPath:indexPath];
}
아니라 큰 문제지만, tableview
에 정적 행 크기의 단지 전체 방법은 같다.
정적 행이있는 정적 tableView가 있으므로 하드 코딩 된 인덱스는 괜찮습니다. 나는 절대 숫자를 숨기는 enum을 사용하고있다. – JOM