我使用IB在Xcode 4中创建了UITableViewCell
。但是,由于某些奇怪的原因,当我触发编辑按钮时,cell
的行为非常奇怪,并且与普通的表格视图单元格没有相同的动画。我不知道发生了什么,我尝试在我的自定义单元格类中实现-(void)setEditing:(BOOL)editing animated:(BOOL)animated
,但仍然无效。
更新:我使用该单元格的ViewController
,此代码位于cellForAtIndex
下以显示该单元格。
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];
for (id currentObject in topLevelObjects)
{
if ([currentObject isKindOfClass:[UITableViewCell class]])
{
cell = (CustomCell *) currentObject;
break;
}
return cell;
}
}
普通视图
点击编辑按钮时
即使在滑动它时也会覆盖文本时,它应该将其移到一边:
答案 0 :(得分:2)
第一个建议;不要将IB用于自定义UITableViewCell
s。
下一步;确保您向UITableViewCell
的{{1}}添加任何自定义视图...而不仅仅是单元格本身。当显示编辑部分(如删除按钮)时,contentView
的contentView将自动缩小。如果您在UITableViewCell
/ UILabel
上添加了正确的UIViewAutoresizing掩码,那么它将被正确调整大小/移动。
编辑,在评论中回答您的问题:
与任何自定义视图相同。你可以自己创建一个类,或者根据你的需要,自己构建它。课程通常是最好的,因此您可以引用您添加到单元格中的任何自定义内容并重复使用单元格等。
但是,这是一个构建一个ad-hoc的例子。
contentView
编辑#2
UIImageView * myCheckBox = ...
UILabel * myLabel = ...
UITableViewCell * cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
[cell.contentView addSubview:myCheckBox];
[cell.contentView addSubview:myLabel];
self.customCell = cell;