我已經看過很多關於如何通過覆蓋heightForRowAtIndexPath
來隱藏靜態UITableViewCell
的示例,雖然我現在已經運行了,但是看起來如此麻煩以至於我想看看我是否做錯了什麼。只能通過覆蓋heightForRowAtIndexPath來更改靜態UITableViewCell的高度?
我有一個UITableViewController
與約8行的表視圖。我的應用程序中的這個屏幕顯示了一個對象,例如,一行是描述,一個是圖像,一個是地圖視圖等。所有行都是靜態的。
在某些情況下,顯示的某些對象沒有地圖,所以我想隱藏包含mapview
的行。由於它是一個靜態行,我一直在考慮通過爲該行設置一個outlet屬性(例如@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靜態行,所以硬編碼索引應該沒問題。我使用枚舉,它隱藏絕對數字。 – JOM 2015-06-17 10:03:10