我想阻止自定义UITableViewCell
滑动以显示红色的“删除”按钮。我可以在UITableView
上禁用此功能,但我没有看到任何允许在单元类中完成此操作的现有问题,这意味着我不需要在使用该单元格的每个表上执行此操作。 / p>
我可以直接在单元格类中禁用此功能(不完全禁用编辑,我有一个自定义的pann-able溢出)吗?
答案 0 :(得分:3)
只需使用:
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return indexPath.row != THE_ROW_YOU_WANT_TO_STOP;
}
答案 1 :(得分:1)
尝试按以下方式覆盖- (void)setEditing: animated:
方法:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:NO animated:NO];
}
答案 2 :(得分:1)
您需要实现editingStyleForRowAtIndexPath并在那里执行测试。
如果只有一个单元格具有此pannable溢出并且您知道哪一行,则可以定义一个常量并对其进行测试,如下所示:
#define kPANNABLE_OVERFLOW_CELL_ROW 7
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ( indexPath.row == kPANNABLE_OVERFLOW_CELL_ROW )
return UITableViewCellEditingStyleNone;
}
如果你有多个需要这种治疗的任意细胞,你需要稍微改变一下。
内部
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// create your table view cell
if ( _Your_table_view_cell_is_the_pannable_overflow_type_ ) {
cell.editingStyle = UITableViewCellEditingStyleNone;
}
}
答案 3 :(得分:1)
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleNone;
}
尝试上面的代码,它只是禁用tableview单元格滑动中的删除按钮。
编辑隐藏按钮的按钮转到此处