美文网首页
iOS 扩大 UIButton 的点击范围

iOS 扩大 UIButton 的点击范围

作者: CoderGuogt | 来源:发表于2019-09-27 00:57 被阅读0次

在实际开发中,有的时候 Button 因为 Frame 太小,导致点击范围也小,需要增大 Button 的点击范围,但是又不需要改变 ButtonFrame
在 UIView 中有一个方法

 // default returns YES if point is in bounds
- (BOOL)pointInside:(CGPoint)point withEvent:(nullable UIEvent *)event;  

这个方法,当点击范围在这个view中,返回YES, 否则返回 NO

可以新建一个分类,新增加一个属性,记录需要扩大范围大小

@property (nonatomic, assign) CGFloat expandSize; /**< 需要扩大的范围大小 */

.m 文件的实现增加以下方法

- (void)setExpandSize:(CGFloat)expandSize {
    
    objc_setAssociatedObject(self, @selector(setExpandSize:), @(expandSize), OBJC_ASSOCIATION_ASSIGN);
}

- (CGFloat)expandSize {
    
    return [objc_getAssociatedObject(self, @selector(setExpandSize:)) floatValue];
}

- (CGRect)expandRect {
    
    return CGRectMake(self.bounds.origin.x - self.expandSize,
                      self.bounds.origin.y - self.expandSize,
                      self.bounds.size.width + 2 * self.expandSize,
                      self.bounds.size.height + 2 * self.expandSize);
}

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    
    CGRect buttonRect = [self expandRect];
    
    if (CGRectEqualToRect(buttonRect, self.bounds)) {
        return [super pointInside:point
                        withEvent:event];
    }
    
    return  CGRectContainsPoint(buttonRect, point);
}

这样就在不改变 ButtonFrame 前提下,扩大了 Button 的点击范围。

相关文章

  • ios 扩大UIButton点击范围

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

  • iOS扩大UIButton点击范围

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

  • iOS扩大UIButton的点击范围

    怎样来实现这个功能呢?又有多少种方式可以实现呢?下面一一来讲。 理解事件传递过程,用这个来实现扩大点击范围使用Ru...

  • iOS 扩大 UIButton 的点击范围

    在实际开发中,有的时候 Button 因为 Frame 太小,导致点击范围也小,需要增大 Button 的点击范围...

  • iOS-扩大UIButton点击范围

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

  • iOS UIButton扩大点击范围

    代码 应用场景: 当某个Button设计尺寸很小,导致页面很不好点,因此在不改变设计尺寸的情况下对按钮的响应范围进...

  • iOS扩大UIButton按钮的点击范围

    有时候会遇到按钮本身较小,不好点击的情况。这个时候可能不方便扩大按钮,就可以使用这个方法来扩大点击范围但是不需要扩...

  • 扩大UIButton的点击范围

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

  • 扩大UIButton的点击范围

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

  • UIButton 扩大点击范围

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

网友评论

      本文标题:iOS 扩大 UIButton 的点击范围

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