0
我想添加一個自定義的底部邊框到我使用UIImageView,我在運行時以編程方式添加到單元格的所有我的tableview單元格。問題在於,當用戶滾動時,邊框會隨機消失。動態添加邊框子視圖到UITableViewCell
此代碼是在我的cellForRowAtIndexPath方法:
UIImageView* border = (UIImageView*)[cell viewWithTag:10];
if (border)
[border removeFromSuperview];
NSInteger sectionRows = [tableView numberOfRowsInSection:[indexPath section]];
NSInteger row = indexPath.row;
if (row != sectionRows - 1) {
UIImageView* border = [[UIImageView alloc] initWithImage:[[ImageManager sharedManager] imageNamed:@"dashed_border"]];
[border setFrame:CGRectMake(10, [self tableView:tableView heightForRowAtIndexPath:indexPath], 290, 1)];
[border setTag:10];
[cell addSubview:border];
[border release];
}
它,如果它存在,刪除一個邊界子視圖,並且如果該行不是最後一行,則在該行的底部插入邊界。
我不確定這是否是一種競爭條件,或者是否有某些時候cellForRowAtIndexPath在用戶滾動時未被調用。
該節中的行數是否曾經改變? – smparkes 2012-01-28 01:43:17
無論你做什麼,你最好不要總是刪除邊框和重新添加它,這似乎是最常見的情況。相反,只有當它在那裏,你纔是最後一行。通常情況下,這樣簡單的事情不會有什麼大不了的,但在表格視圖單元格中,你不想做任何你不需要的工作。 – smparkes 2012-01-28 01:45:17
不,行數根據集合中的項目數設置。 – James 2012-01-28 01:51:25