iOS圆形UIButton实现只点击圆形区域有效

2018-03-27  本文已影响40人  SmallWhiteMouse

 系统UIButton自带的方式为矩形,通过设置layer层可以将图片裁剪为圆形,但是点击区域仍是矩形。

即: btn.layer.cornerRadius = 150; //矩形边长的一半

    btn.layer.masksToBounds = NO;//设置超过子图层的部分裁减掉

为解决这个为题,本文的方法是,创建UIButton子类,重写UIButton的- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event的方法。代码如下:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{

    BOOL  flag = [super pointInside:point withEvent:event];

    if (flag) {

        UIBezierPath   *path = [UIBezierPath bezierPathWithOvalInRect:self.bounds];

        if ([path containsPoint:point]) {

            return YES;

        }

    }

    return NO;

}

上一篇 下一篇

猜你喜欢

热点阅读