您的位置:首页 > 移动开发 > IOS开发

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的空间都可以用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios开发 uibutton
相关文章推荐