如何让view只响应一个按钮
来源:互联网 发布:淘宝企业店铺资质要求 编辑:程序博客网 时间:2024/04/28 11:49
一些应用经常会在一个view上放多个按钮,比如登录页面,就会有注册与登录按钮。理论上讲注册和登录按钮是不能同时按下的,但是如果你同时按下这两个按钮,这两个东东都会显示响应高亮状态,其结果就不可预知了。这种情况经常会被测试童鞋当成bug。
其实UIView类属性有个exclusiveTouch属性,表示是否该view响应触摸是排他的。默认的设置是NO,即不排他。如果想让按钮排他响应,只需将按钮的exclusiveTouch设置为YES即可。
实际编程中我一般会在viewDidLoad方法中对self.view中的subview进行遍历,如果是按钮对象就将它的exclusiveTouch属性设为YES。
示例代码:
另外说明:手势识别会忽略exclusiveTouch设置。详见苹果官方例子:SimpleGestureRecognizers。
其实UIView类属性有个exclusiveTouch属性,表示是否该view响应触摸是排他的。默认的设置是NO,即不排他。如果想让按钮排他响应,只需将按钮的exclusiveTouch设置为YES即可。
实际编程中我一般会在viewDidLoad方法中对self.view中的subview进行遍历,如果是按钮对象就将它的exclusiveTouch属性设为YES。
示例代码:
for (UIView *subview in self.view.subviews) { if ([subview isKindOfClass:[UIButton class]]) { subview.exclusiveTouch = YES; } }
比如:
UINavigationBar左右两边按钮可同时点击的问题
这个问题是我们这边测试发现的。UINavigationBar左右两边的按钮竟然可以同时点击,他们可以连续响应。如果它们的操作是互斥的,如“发送”和“取消”,很可能因为没有做同时操作的处理,引起App异常。一个比较方便的解决办法就是设置button的exclusiveTouch
属性设置为YES,这样只要此按钮排他性地接受的Touch事件。如果你的左右两边不是按钮,而是UIBarButtonItem,只能在代码逻辑上做一些容错处理了。
另外说明:手势识别会忽略exclusiveTouch设置。详见苹果官方例子:SimpleGestureRecognizers。
0 0
- 如何让view只响应一个按钮
- 如何让view只响应一个按钮
- 按钮 只响应一个
- 两个view重叠时如何只让上层view响应触摸事件
- 多次点击一个按钮时只响应一次
- 如何让应用程序只启动一个实例
- 如何让程序只运行一个实例
- 如何让mfc程序只运行一个
- 如何让回车键和某个按钮响应相同事件
- 如何让返回按钮只有一个<
- ios 如何让一个view居中另一个view
- 如何实现按钮按下响应一个事件 松开另一个?
- 如何扩大一个view的touch和click响应区域
- 一个view如何同时响应onTouch和onClick事件
- 两个view重叠如何只让顶层的view相应事件
- 如何让程序只运行一个实例(VC)
- 如何让程序只运行一个实例(VC)
- c++如何让程序只启动一个实例
- 说说大型高并发高负载网站的系统架构(更新
- Java中泛型(4)——泛型接口(传智播客毕老师视频讲解)
- 善用指针---用指针做函数参数
- 倾听我黑色的大衣像我的你
- python编码
- 如何让view只响应一个按钮
- Openstack 二次开发之:在windows 环境下编译Openstack-java-sdk
- DataTemplate-根据条件选择不同模板
- HttpWebRequest使用总结
- [转]优酷土豆2012.9.12校园招聘会笔试题
- C# winform treeview node添加右键菜单并选中节点
- 如何制作C#安装程序
- stm32 can管脚重映谢
- 何必想何必问何处是我家