iOS - 扩展UIButton的响应区域

扩展UIButton的响应区域

引言

通常在iOS开发中通常会遇到产品说按钮的响应区域不大 而UI给我们的设计是按钮的面积 而不是按钮的响应面积

所以在这种情况下需要我们自己去扩展按钮的响应区域

思考:这时候让我想起了 响应者链条

 

解决方案:

重写一个Button类,这个button类继承与UIButton,

重写- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event, 作用:判断下传入过来的点在不在方法调用者的坐标系上

直接上代码

#import "JHCustomButton.h"

@implementation JHCustomButton

// 作用:判断下传入过来的点在不在方法调用者的坐标系上
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
    
    CGRect bounds =CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);
    
    //宽高希望扩展的范围
    CGFloat widthDelta =30;
    CGFloat heightDelta =20;
    
    //相当于bounds 上下左右都增加了10的额外
    bounds =CGRectInset(bounds, -0.5*widthDelta, -0.5* heightDelta);//注意这里是负数,扩大了之前的bounds的范围
    
    //点击的点是否在这个范围
    return CGRectContainsPoint(bounds, point);

}
@end

 

 这样就实现了只扩大了按钮的响应区域

 

转载于:https://www.cnblogs.com/junhuawang/p/6438154.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值