iOS开发两个距离较近的按钮同时触发事件的解决方法
2016-03-12 21:42
761 查看
最繁琐的一种方法是(给按钮加判断):
最简单一种方法是:
[_firstButton setExclusiveTouch:YES];
[_secondButton setExclusiveTouch:YES];
这个是UIView的成员方法, 只要是继承自UIView的控件都可以用。
// Created by Mini on 16/3/11. // Copyright © 2016年 IZHUO.NET. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (nonatomic,strong,readonly) UIButton *firstButton; @property (nonatomic,strong,readonly) UIButton *secondButton; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //为第一个button添加事件 _firstButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_firstButton addTarget:self action:@selector(actionButton:) forControlEvents:UIControlEventTouchUpInside]; [_firstButton addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [_firstButton addTarget:self action:@selector(recoveryButtonAction:) forControlEvents:UIControlEventTouchUpInside]; //为第二个button添加事件 _secondButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_secondButton addTarget:self action:@selector(actionButton:) forControlEvents:UIControlEventTouchUpInside]; [_secondButton addTarget:self action:@selector(recordButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [_secondButton addTarget:self action:@selector(recoveryButtonAction:) forControlEvents:UIControlEventTouchUpInside]; }
#pragma mark -- 事件响应 //点击按钮到离开屏幕响应事件时恢复按钮的状态并触发事件 - (void)actionButton:(UIButton *)sender { _firstButton.enabled = YES; _secondButton.enabled = YES; if (sender == _firstButton) { [self firstButtonPressed]; } else if (sender == _secondButton) { [self secondButtonPressed]; } } // 当按钮点下时把另一按钮设置不可点 - (void)recordButtonAction:(UIButton *)sender { if (sender == _firstButton) { _secondButton.enabled = NO; } else if (sender == _secondButton) { _secondButton.enabled = NO; } } //当点下按钮从按钮区域外离开时恢复button状态 - (void)recoveryButtonAction:(UIButton *)sender { _firstButton.enabled = YES; _secondButton.enabled = YES; } - (void)firstButtonPressed { //第一个按钮事件处理 } - (void)secondButtonPressed { //第二个按钮事件处理 }
最简单一种方法是:
[_firstButton setExclusiveTouch:YES];
[_secondButton setExclusiveTouch:YES];
这个是UIView的成员方法, 只要是继承自UIView的控件都可以用。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 喷墨打印机的四个假故障解决办法
- 您用户网站被黑的原因和解决办法
- oracle em 按钮乱码解决办法及em网页变成英文
- css文本框与按钮美化效果代码
- 用CSS实现的一张图完成的按钮效果
- SQL Server数据库复制失败的原因及解决方法
- css样式之区分input是按钮还是文本框的方法第1/4页
- Android实现定制返回按钮动画效果的方法
- jQuery移动页面开发中主题按钮的设计示例
- ON_COMMAND_RANGE多个按钮响应一个函数的解决方法
- 关于Intype一些小问题的解决办法
- C#利用反射技术实现去掉按钮选中时的边框效果
- winform实现关闭按钮失效的两种方法