在编辑模式下,在UITableView中将自定义单元格移动到右侧

时间:2015-10-27 11:18:07

标签: ios objective-c xcode uitableview

我有一个多节UITableView,它包含由UIImageUILabel等组成的自定义单元格。当我点击导航栏上的编辑按钮时,我希望单元格内容移动在右边。因为我想防止“删除”视觉和我的自定义单元格UIImage之间的重叠。此外,我希望它在编辑模式结束时还原。

我试过了setIndentationLevel,但它没有用。我该如何管理?

3 个答案:

答案 0 :(得分:2)

由于您使用的是自定义表格视图单元格,我建议您使用

override init(style: UITableViewCellStyle, reuseIdentifier: String?)
super.init(style: style, reuseIdentifier: reuseIdentifier)

如果您的视图为myImageView

,请说明

不要添加为:

addSubview(myImageView)

而是添加为:

contentView.addSubview(myImageView)

因为contentView是一个自动向右移动的视图。

答案 1 :(得分:1)

在启动期间(-viewDidLoad或在storyboard中)执行:

self.tableView.allowsMultipleSelectionDuringEditing = NO;

现在实现以下tableView委托

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Write code to change content insets of your cell here
    // Return YES if you want the specified item to be editable.
    return YES;
}

//覆盖以支持编辑表格视图。

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        //add code here for when you hit delete
        // Change back the content insets of cell here
    }    
}

答案 2 :(得分:0)

覆盖自定义单元格中的- (void)setEditing:(BOOL)editing animated:(BOOL)animated,以根据编辑值重置约束。