在正常情況下有一個UITableView我有重新使用舊電池標準的代碼時:出隊UIViews withing的UITableViewCell
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
return cell;
}
我注意到了,但是,在該情況下,當我添加子視圖的細胞,其他們沒有被刪除,並且每次都添加新的視圖。我有一個例子低於完美地展現它:
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
UILabel *label = [[UILabel alloc] init];
label.text = @"HELLO";
label.frame = CGRectMake(arc4random() % 50, -1, 286, 45);
label.backgroundColor = [UIColor clearColor];
// Add views
[cell addSubview:label];
return cell;
}
我需要一些代碼,會再次重用我的標籤,以同樣的方式在細胞被重用。我該怎麼辦?
感謝
只需在添加到單元格後發佈您的標籤。 – iMash
刪除標籤或註釋if(cell == nil)條件行。因此它會分配每個新的單元格。它會針對性地解決您的問題,但對於大型表格存在內存管理問題。 –