在 UITableview 的编辑模式下滚动时删除按钮消失

Posted

技术标签:

【中文标题】在 UITableview 的编辑模式下滚动时删除按钮消失【英文标题】:Delete button disappeared on scrolling in edit mode of UITableview 【发布时间】:2017-03-28 05:24:48 【问题描述】:

当我在编辑模式下滚动表格视图时,我遇到了这个问题。这是因为细胞的可重用性。我跟着链接- UITableView in Edit Mode - Delete Button Dissapears on Scroll

从中一无所获。

这是我的代码 sn-p-

- (void)setEditing:(BOOL)editing
      animated:(BOOL)animated

   [super setEditing:editing animated:animated];
   [tableView setEditing:editing animated:animated];
   [tableView setAllowsMultipleSelectionDuringEditing:editing];



- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

   return UITableViewCellEditingStyleDelete;



- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath 

   return NO;



- (BOOL)tableView:(UITableView *)tableview canMoveRowAtIndexPath:(NSIndexPath *)indexPath

   return YES;


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

   UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

   if (cell == nil)
    
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];

    

 [cell setEditingAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];

 cell.textLabel.text=[NSString stringWithFormat:@"%ld",indexPath.row+1];
 cell.detailTextLabel.text=@"";


 cell.clipsToBounds = YES;
 return cell;

那么任何人的任何建议或建议如何解决该问题?

谢谢。

【问题讨论】:

从哪里可以看到 OP 也面临同样的问题,并且对于同样的问题没有可用的解决方案。 @agent_stack 操作?我也在寻找同样的东西。看看有没有人解决了这个问题。 OP 表示 原始发帖人 表示是谁发起了讨论,就像这里你是 OP。 尝试用强属性声明 tableview 属性...我遇到了这种问题,但当我用强而不是弱更改 tableview 属性时,它工作正常 @agent_stack 好的。我用谷歌搜索,发现那个链接有同样的问题。 【参考方案1】:

-(void)setEditing:(BOOL)editing animated:(BOOL)animated方法改成这样:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
    _myTV.allowsMultipleSelectionDuringEditing = NO;
    [super setEditing:editing animated:animated];

    if(editing) 
        [_myTV setEditing:YES animated:YES];
     else 
        [_myTV setEditing:NO animated:YES];
    

【讨论】:

你拯救了我的一天。美丽。结论:_myTV.allowsMultipleSelectionDuringEditing = NO; // 单选。和 _myTV.allowsMultipleSelectionDuringEditing = 编辑; //用于多选。 是的,当然。完成了:) @Amir Khan 谢谢好友。【参考方案2】:
- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath 

   return YES; // return yes

现在运行你的程序,让我知道发生了什么?

编辑

从here 获取此演示。给出了很好的解释

【讨论】:

删除按钮被移除,现在显示空圆圈。 @AmirKhan 检查此示例***.com/questions/19164188/… @AmirKhan 得到我在回答中分享的演示。

以上是关于在 UITableview 的编辑模式下滚动时删除按钮消失的主要内容,如果未能解决你的问题,请参考以下文章

在编辑模式下按下删除按钮时 UITableView 崩溃

在 UITableView 编辑模式下更改删除按钮标题 [重复]

UITableview 编辑模式时不出现左删除图标

tableview 编辑模式单元格选择复选标记在滚动时消失

编辑模式下的 UITableView - 按 Delete 会使我的应用程序崩溃

允许 UITableView 重新排序,但在编辑模式下不删除,并启用滑动删除