ios - 如何取消正在进行的所有触摸操作?

标签 ios

我面临的情况是,我有 2 个按钮在点击时显示不同的 View Controller 。

问题是,如果我按住“按钮 1”,然后按下并释放“按钮 2”,然后释放“按钮 1”,则两个按钮操作都会执行。 (在这种情况下呈现一个 View Controller )

所以我认为最简单的解决方案是在我展示我的 View Controller 时在同一个地方调用一些东西,它会“取消所有操作中的触摸或所有用户交互”,这样当按下的按钮被释放时它不会将其注册为新事件。

iOS 中是否有用于“中断”所有正在进行的触摸的方法?

最佳答案

干得好,
这将使一次只能点击一个按钮

for (UIView * button in [self.view subviews]) {
    if([button isKindOfClass:[UIButton class]])
        [((UIButton *)button) setExclusiveTouch:YES];
}

一个 更好解决方案是制作 分类 对于 UIButton并在其中设置此代码:
- (void)awakeFromNib
{
    [super awakeFromNib];
    [self setExclusiveTouch:YES];
}

关于ios - 如何取消正在进行的所有触摸操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42778894/

相关文章:

iOS - SQLite 插入不插入数据

ios - libc++abi.dylib : terminating with uncaught exception of type NSException - SpriteKit

ios - 如何实现SwipeView?

ios - 如何在邮件应用程序 iOS9 Swift/obj-C 中为单元格创建可扩展(可拉伸(stretch))操作

ios - Popover TableView 未显示选中标记 (iOS7.1)

ios - 如何设置 UIImageView 大小以及如何确保它始终保持该大小?

html - 具有线性渐变的背景图像的跨浏览器 css

ios - Xcode 模拟器不显示额外安装的 iOS 版本

ios - 尝试在应用程序支持中创建目录时权限被拒绝

objective-c - 用于 ios 的 cocos2d 上带有 block 的 itemWithNormalSprite