iOS | UITableViewでcell内のコンテンツが二重に描画される

2014-01-16

UITableViewを使っていて問題発生。
TableViewのcellに設定したUILabelやUIButtonが描画される度、二重、三重に表示される。
調べてたら解決策を発見。描画されたサブビューを取り除く必要があったみたい。
cellForRowAtIndexPath内でremoveFromSuperviewで取り除く。
[objc]
– (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];
}

// サブビューを取り除く
for (UIView *subview in [cell.contentView subviews])
{
[subview removeFromSuperview];
}
}
[/objc]

Copyright(c) 2015 AndByYOU INC. All Rights Reserved.