ios 扩大button的点击区域

当UI设计图上的给出按钮尺寸较小,我们将对应的资源文件放入UIButton中,在真机调试中会发现难以点到按钮。
这时候我们可以创建一个类继承UIButton,重写pointInside方法,使得按钮事件响应不够我们设置的最小区域的自动扩大到我们的设置的最小区域。

.h定义我们设置的最小响应区域大小
/**
 *  事件响应最小区域大小(小于此区域则放大,否则保持原大小不变,不赋值保持原大小不变)
 */
@property (nonatomic, assign) CGSize eventFrame;
.m重写pointInside方法
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event{
    
CGRect bounds = self.bounds;
CGFloat widthExtra = MAX(self.eventFrame.width - bounds.size.width, 0);
CGFloat heightExtra = MAX(self.eventFrame.height - bounds.size.height, 0);
bounds = CGRectInset(bounds, -0.5 * widthExtra, -0.5 * heightExtra);
return CGRectContainsPoint(bounds, point);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本篇文章记录了iOS开发零碎知识点,简单又实用! 代码写了这么多,但是总是有些知识点在真正需要用到的时候却遗忘了,...
    Colin_狂奔的蚂蚁阅读 2,494评论 8 44
  • 当设计图上的给出按钮尺寸较小,我们将对应的资源文件放入UIButton中,比如只有12x12pt,在真机调试中会发...
    白熊阅读 3,372评论 0 4
  • 问题 在开发过程中经常会遇到设计给出的button尺寸偏小的情况.这种UIButton在使用中会非常难点击,极大降...
    走进科学阅读 2,533评论 0 4
  • 1,NSObject中description属性的意义,它可以重写吗?答案:每当 NSLog(@"")函数中出现 ...
    eightzg阅读 4,192评论 2 19
  • 学习力践行20170811Day8 1、英语:跟着点读笔泛读了6本牛津树,发音越来越标准,有进步 2、数学逻辑:下...
    叮当妈妈123阅读 294评论 0 1