iosのcellキャッシュをクリアし、cellの再利用の問題を解決します.
tableViewテーブルのcellには再利用メカニズムがあり、多くのスペースメモリを開くことを避けることができます.しかし、cellを再利用したくない場合があります.以下のコードで解決できます.
このコードを次のように配置します.
-(UItableView*)tableView:(UItableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{}この関数で実行すればよい.
例:
このコードを次のように配置します.
-(UItableView*)tableView:(UItableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{}この関数で実行すればよい.
// cell
NSArray *subviews = [[NSArray alloc] initWithArray:cell.contentView.subviews];
for (UIView *subview in subviews) {
[subview removeFromSuperview];
}
例:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier: CellIdentifier];
}else{
//cell subview, cell, cell subview ,
// [[cell.subviews objectAtIndex:1] removeFromSuperview];
for (UIView *subView in cell.contentView.subviews)
{
[subView removeFromSuperview];
}
}
if (tableView == couponTableView) {
//
cell.textLabel.text = [NSString stringWithFormat:@"%@", [couponArry objectAtIndex:indexPath.row]];
}
else{
//
cell.textLabel.text = [NSString stringWithFormat:@"%@", [groupbuyArry objectAtIndex:indexPath.row]];
}
return cell;
}