NewGuide之touch事件以及cut a hole in UIView

#import "QuartzCore/QuartzCore.h"

    

//cut a hole

    CAShapeLayer *mask = [[CAShapeLayer alloc] init];

    mask.frame = view.layer.bounds;

    CGRect biggerRect = CGRectMake(mask.frame.origin.x, mask.frame.origin.y, mask.frame.size.width, mask.frame.size.height);

    CGRect smallerRect = CGRectMake(rectX+2,rectY+2,rectW-4,rectH-4);

    

    UIBezierPath *maskPath = [UIBezierPath bezierPath];

    [maskPath moveToPoint:CGPointMake(CGRectGetMinX(biggerRect), CGRectGetMinY(biggerRect))];

    [maskPath addLineToPoint:CGPointMake(CGRectGetMinX(biggerRect), CGRectGetMaxY(biggerRect))];

    [maskPath addLineToPoint:CGPointMake(CGRectGetMaxX(biggerRect), CGRectGetMaxY(biggerRect))];

    [maskPath addLineToPoint:CGPointMake(CGRectGetMaxX(biggerRect), CGRectGetMinY(biggerRect))];

    [maskPath addLineToPoint:CGPointMake(CGRectGetMinX(biggerRect), CGRectGetMinY(biggerRect))];

    

    [maskPath moveToPoint:CGPointMake(CGRectGetMinX(smallerRect), CGRectGetMinY(smallerRect))];

    [maskPath addLineToPoint:CGPointMake(CGRectGetMinX(smallerRect), CGRectGetMaxY(smallerRect))];

    [maskPath addLineToPoint:CGPointMake(CGRectGetMaxX(smallerRect), CGRectGetMaxY(smallerRect))];

    [maskPath addLineToPoint:CGPointMake(CGRectGetMaxX(smallerRect), CGRectGetMinY(smallerRect))];

    [maskPath addLineToPoint:CGPointMake(CGRectGetMinX(smallerRect), CGRectGetMinY(smallerRect))];

    

    mask.path = maskPath.CGPath;

    [mask setFillRule:kCAFillRuleEvenOdd];

    mask.fillColor = [[UIColor blackColor] CGColor];

    view.layer.mask = mask;

    

}


//判断点击的位置,return YES不分发事件,returnNO分发事件

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

    if(CGRectContainsPoint(CGRectMake(100, 100, 60, 40), point)){

//        NSLog(@"pointInside");

        return NO;

    }

    return YES;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值