gpt4 book ai didi

ios - 滑动删除单元格不会取消 UIButton 操作

转载 作者:可可西里 更新时间:2023-11-01 04:15:34 26 4
gpt4 key购买 nike

我的 UITableView 启用了滑动删除功能。每个单元格上都有一个执行操作的 UIButton(在本例中,执行一个 segue)。

我希望如果我通过触摸按钮滑动单元格,按钮的操作将被取消/忽略,并且只会处理滑动。然而,实际发生的是两种手势(滑动 + 点击)都被检测和处理。

这意味着如果我只想删除一个单元格并“不小心”通过触摸按钮滑动,应用程序将转到下一个屏幕。

在这种情况下,如何强制我的应用忽略点击?

最佳答案

august 的回答对我来说已经足够好了,但我想出了如何让它变得更好:

检查表格是否处于编辑模式以决定按钮是否应执行其操作将使它的行为正常,但用户体验仍然存在问题:

如果用户想要退出编辑模式,他应该能够点击单元格中的任意位置来实现,包括按钮。但是,UIButton 的操作仍然首先由应用程序分析,点击按钮不会退出编辑模式。

我找到的解决方案是在进入编辑模式时禁用按钮的用户交互,并在完成后重新启用它:

// View with tag = 1 is the UIButton in question
- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath {
[(UIButton *)[[tableView cellForRowAtIndexPath:indexPath] viewWithTag:1] setUserInteractionEnabled:NO];
}

- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath {
[(UIButton *)[[tableView cellForRowAtIndexPath:indexPath] viewWithTag:1] setUserInteractionEnabled:YES];
}

这样拖动按钮进入编辑模式不会触发按钮的 Action ,点击按钮退出编辑模式确实会退出编辑模式。

关于ios - 滑动删除单元格不会取消 UIButton 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23703107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com