美文网首页iOS开发之常见问题
UIButton扩大点击范围和有效点击区域

UIButton扩大点击范围和有效点击区域

作者: 心亦逸风 | 来源:发表于2018-07-16 09:59 被阅读99次

在开发中,我们可能会遇到这样两种场景。一种的按钮frame太小要扩大它的点击范围;另一种是按钮的显示超出的superview的范围超出部分无法点击。
根据之前一篇文章触摸事件流程的分析,我们知道了主要是在寻找view(pointInside:withEvent:hitTest:withEvent:)时,没有找到Button导致的,按照这个思路就能找到解决方法。

1.扩大Button点击范围

只要在button判断是否点击到自身的pointInside:withEvent:方法中写上自己的判断逻辑返回

//按钮点击范围上左下右各增加25
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    CGRect frame = self.bounds;
    frame.origin.x -= 25;
    frame.origin.y -= 25;
    frame.size.width += 50;
    frame.size.height += 50;
    
    if (CGRectContainsPoint(frame, point)) {
        return true;
    }
    
    return [super pointInside:point withEvent:event];
}

2.Button超出superview部分点击有效

这个主要是在点击后判断到button的superview没有点击到,那么就要重写button的superview的pointInside:withEvent:方法

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    if (self.subviews.count > 0) {
        UIView *buttonView = [self.subviews firstObject];
        if (CGRectContainsPoint(buttonView.frame, point)) {
            return true;
        }
    }
    
    return [super pointInside:point withEvent:event];
}

这里因为我在view上就放了一个button,所以直接取了第一个,具体获取的方法可以根据页面情况获取。

最后时测试代码IOSStudyTest

相关文章

  • UIButton扩大点击范围和有效点击区域

    在开发中,我们可能会遇到这样两种场景。一种的按钮frame太小要扩大它的点击范围;另一种是按钮的显示超出的supe...

  • 扩大UIButton点击区域

    当设计图上的给出按钮尺寸较小,我们将对应的资源文件放入UIButton中,比如只有12x12pt,在真机调试中会发...

  • ios 扩大UIButton点击范围

    先了解Hit-Test请看上一篇文章https://www.jianshu.com/writer#/noteboo...

  • 扩大UIButton的点击范围

    实现方式:利用runtime写一个button的类别,使用时调用便可。 demo地址扩大按钮点击范围

  • UIButton 扩大点击范围

    实际开发中经常遇到因为Button太小导致用户无法点击到有效区域影响体验,这时就要增加点击范围。这里我们给Butt...

  • 扩大UIButton的点击范围

    有的时候,UI小图标,可是需要可以点击.如果使用button的setImage来设置资源文件,点击范围有可能就变得...

  • 扩大按钮(UIButton)点击范围

    重写一个Button类,这个类继承与UIButton,重写 - (BOOL)pointInside:(CGPo...

  • iOS扩大UIButton点击范围

    由网上各位大神的实现方法,总结如下:为UIButton添加一个分类MSExtendTouchArea

  • UIButton扩大点击范围

    我们在项目开发中可能会出现按钮较小,用户不容易点击的情况。 解决方法 新建UIButton分类,重写- (null...

  • 扩大UIButton的点击区域

    创建一个UIButton的类别添加到项目中 在需要扩大按钮的点击范围处调用 注意:按钮扩大的范围必须在父视图内,超...

网友评论

    本文标题:UIButton扩大点击范围和有效点击区域

    本文链接:https://www.haomeiwen.com/subject/kduvpftx.html