IOS 开发两个按钮(button)很近的时候同时触发事件解决的方法(setExclusiveTouch)
2014-12-14 14:36
761 查看
原文链接http://blog.sina.com.cn/s/blog_916e0cff01014l5t.html
/ 第一个按钮(button)添加事件
[Button1 addTarget:self action:@selector(actionButton:) forControlEvents:UIControlEventTouchUpInside];
[Button1
addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchDown];
[Button1
addTarget:self action:@selector(recoveryButtonAction:) forControlEvents:UIControlEventTouchUpOutside];
// 第二个按钮(button)添加事件
[Button1 addTarget:self action:@selector(actionButton:) forControlEvents:UIControlEventTouchUpInside];
[Button1
addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchDown];
[Button1
addTarget:self action:@selector(recoveryButtonAction:) forControlEvents:UIControlEventTouchUpOutside];
// 事件响应
// 点击从按钮里面欧元离开屏幕响应事件时恢复按钮的状态并触发事件
- (void)actionButton:(UButton *)button {
Button2.enabled
= YES;
Button1.enabled
= YES;
if
(button == Button1) {
[self
Button1Pressed];
}
else
if (button == Button2) {
[self
Button2Pressed];
}
}
// 当点下时把另一按钮设置不可点
- (void)recordButtonAction:(UButton *)button {
if
(button == Button1) {
Button2.enabled
= NO;
}
else
if (button == Button2) {
Button1.enabled
= NO;
}
}
//当点下按钮从按钮区域外离开时恢复button状态
- (void)recoveryButtonAction:(UButton *)button {
Button2.enabled
= YES;
Button1.enabled
= YES;
}
- (void)Button1Pressed {
第一个按钮事件处理
}
- (void)Button2Pressed {
第二个按钮事件处理
}
做了两年多IOS开发了,今天发现一个特别简单的方法,以上方法在是太臃肿了,但不排除能解决问题。不多扯了,让那个简单的方法闪亮登场吧。
[btn setExclusiveTouch:YES];(用UIButton的实例调用试试吧)
这个是uiview的成员方法, 只要是继承自uiview的空间都可以用
/ 第一个按钮(button)添加事件
[Button1 addTarget:self action:@selector(actionButton:) forControlEvents:UIControlEventTouchUpInside];
[Button1
addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchDown];
[Button1
addTarget:self action:@selector(recoveryButtonAction:) forControlEvents:UIControlEventTouchUpOutside];
// 第二个按钮(button)添加事件
[Button1 addTarget:self action:@selector(actionButton:) forControlEvents:UIControlEventTouchUpInside];
[Button1
addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchDown];
[Button1
addTarget:self action:@selector(recoveryButtonAction:) forControlEvents:UIControlEventTouchUpOutside];
// 事件响应
// 点击从按钮里面欧元离开屏幕响应事件时恢复按钮的状态并触发事件
- (void)actionButton:(UButton *)button {
Button2.enabled
= YES;
Button1.enabled
= YES;
if
(button == Button1) {
[self
Button1Pressed];
}
else
if (button == Button2) {
[self
Button2Pressed];
}
}
// 当点下时把另一按钮设置不可点
- (void)recordButtonAction:(UButton *)button {
if
(button == Button1) {
Button2.enabled
= NO;
}
else
if (button == Button2) {
Button1.enabled
= NO;
}
}
//当点下按钮从按钮区域外离开时恢复button状态
- (void)recoveryButtonAction:(UButton *)button {
Button2.enabled
= YES;
Button1.enabled
= YES;
}
- (void)Button1Pressed {
第一个按钮事件处理
}
- (void)Button2Pressed {
第二个按钮事件处理
}
做了两年多IOS开发了,今天发现一个特别简单的方法,以上方法在是太臃肿了,但不排除能解决问题。不多扯了,让那个简单的方法闪亮登场吧。
[btn setExclusiveTouch:YES];(用UIButton的实例调用试试吧)
这个是uiview的成员方法, 只要是继承自uiview的空间都可以用
相关文章推荐
- iOS开发两个距离较近的按钮同时触发事件的解决方法
- iOS 利用运行时交换系统方法实现禁止同时点击两个按钮触发多个事件
- Android下listview每个Item中包含有按钮,为什么在点击某一行按钮的时候,同时有多行button触发了响应事件?
- 移动端触发touch事件同时触发click事件的相关解决方法
- 同时响应iOS开发中UIPanGestureRecognizer跟UITableView的拖动事件的解决方法
- WPF中button按钮同时点击多次触发click解决方法
- 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法
- WPF中button按钮同时点击多次触发click解决方法
- [Phonegap+Sencha Touch] 移动开发26 Android下的sencha touch程序,转屏时,Ext.Viewport不能触发orientationchange事件的解决的方法
- iOS解决按钮短时间内多次点击只触发一次事件方法
- iOS解决按钮短时间内多次点击只触发一次事件方法(开始写博客)
- IE下按回车键会自动触发button 按钮的点击事件的解决方法
- 移动端开发ios下body点击事件无法触发的解决方法
- WPF中button按钮同时点击多次触发click解决方法
- iOS 解决页面按钮同时点击,同时触发问题 设置所有UIButton的ExclusiveTouch属性为YES
- iOS解决按钮短时间内多次点击只触发一次事件方法
- [Phonegap+Sencha Touch] 移动开发21 Sencha touch tapHold事件 触发时间太长的解决办法
- Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题
- IOS开发之UIButton同时设置图片文字以及触发按钮时文字图片的切换
- [Phonegap+Sencha Touch] 移动开发16 安卓webview中,input输入框不触发backspace回退键事件的解决办法(带来其他bug,作废)