我在grouptableview中有一個自定義tableview單元格。我有一個隱藏的。然後我必須使其可見。電池標籤爲3UITableView設置tableview行隱藏
這不是我的工作代碼:
if (self.tableView.tag == 3) {
self.tableView.hidden = NO; //Not working.
}
正是我需要做一個行可見。我希望你明白。
我在grouptableview中有一個自定義tableview單元格。我有一個隱藏的。然後我必須使其可見。電池標籤爲3UITableView設置tableview行隱藏
這不是我的工作代碼:
if (self.tableView.tag == 3) {
self.tableView.hidden = NO; //Not working.
}
正是我需要做一個行可見。我希望你明白。
傳遞單元格高度zero
在heightForRowAtIndexPath:
特定的細胞,它會自動獲得隱藏: -
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
float heightForRow = 40;
YourCustomCell *cell =(YourCustomCell *)[tableView cellForRowAtIndexPath:indexPath];
if(cell.tag==3)
return 0;
else
return heightForRow;
}
添加下面的方法到您的代碼,它會做的伎倆。 希望它能幫助你。
這對我有用。我確實將我的代碼更改爲float floatForRow = tableView.rowHeight;如果該屬性未設置,則該屬性返回默認高度。 – 2014-03-10 18:58:49
自cellForRowAtIndexPath以來,這不起作用:導致它崩潰,因爲單元格不存在。在創建單元格之前設置高度。 – Joey 2014-05-20 18:21:58
根據我的說法,這不是一個好的解決方案,因爲當單元格被重用時可能會導致衝突。 – 2015-01-19 07:43:55
請參考下面的代碼: -
- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
if(section == theSectionWithoutARow)
{
if(shouldRemoveTheRow)
return [theArrayWithTheSectionContents count] - 1;
else
return [theArrayWithTheSectionContents count];
}
// other sections, whatever
}
- (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
// blah blah standard table cell creation
id theCellObject;
if(indexPath.section == theSectionWithoutARow)
{
NSInteger theActualRowToDisplay = indexPath.row;
if(shouldRemoveTheRow && indexPath.row >= theRowIndexToRemove)
{
theActualRowToDisplay = indexPath.row + 1;
}
theCellObject = [theArrayWithTheSectionContents objectAtIndex:theActualRowToDisplay];
}
// now set up the cell with theCellObject
return cell;
}
希望這有助於你
可能是我讀過的最雜亂的代碼 – Osa 2015-11-13 18:42:23
在SWIFT你需要做兩件事情,
隱藏你的細胞。 (因爲可重複使用的單元格可能衝突)
將單元格的高度設置爲ZERO。
在這裏看看,
隱藏你的細胞。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let myCell:UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cellID",for: indexPath) as! UITableViewCell
if(indexPath.row < 2){
myCell.isHidden = true
}else{
myCell.isHidden = false
}
return myCell
}
細胞的設定高度,以ZERO。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
var rowHeight:CGFloat = 0.0
if(indexPath.row < 2){
rowHeight = 0.0
}else{
rowHeight = 55.0 //or whatever you like
}
return rowHeight
}
使用此您可以刪除重複使用的細胞發生衝突的問題。
對於cell?.tag,您也可以通過標記隱藏特定的單元格。
更好的答案 – 2015-03-09 09:02:30
當我使用這個我得到一個警告:「可能至少有一個在下面的約束列表是你不想要的。試試這個:(1)看看每個約束,並試圖找出你不期望的; (2)找到添加不需要的約束或約束的代碼並修復它「 – DrPatience 2015-09-01 14:17:02
我不明白爲什麼需要隱藏單元格?如何將高度設置爲零會導致可重用單元格發生衝突? – 2015-09-15 15:03:22
參考這篇文章 http://stackoverflow.com/questions/2670635/hiding-uitableviewcell – icodebuster 2013-05-05 17:10:38
你在那裏隱藏你的整個的tableView,而不是一行。 – memmons 2013-05-05 17:24:33