我有一个自定义的uitableviewcell,当我打开它时我想缩进:
[self.boatsDisplay setEditing:YES animated:YES];
有人能给我一些提示或指导吗?
由于
答案 0 :(得分:4)
您需要继承UITableViewCell
并覆盖-layoutSubviews
。当单元格的编辑位设置为YES时,将自动调用-layoutSubviews
。在-layoutSubviews
内所做的任何更改都会自动生成动画。
考虑这个例子
- (void)layoutSubviews
{
[super layoutSubviews];
CGFloat xPosition = 20.0f; // Default text position
if (self.editing)
xPosition = 40.0f;
CGRect textLabelFrame = self.textLabel.frame;
textLabelFrame.origin.x = xPosition;
self.textLabel.frame = textLabelFrame;
}
答案 1 :(得分:2)
在UITableViewDelegate
中,您可以使用tableView:indentationLevelForRowAtIndexPath:
方法:
- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
if(tableView.editing == YES){
return 1; // or higher integer
} else {
return 0;
}
}
如果您只想检查自定义单元格,可以在if条件中添加&&[[tableView cellForRowAtIndexPath:indexPath] isKindOfClass:yourTableViewCell]
。