UIView中空遮盖层,中间部分区域透明可视

原文转自:http://blog.csdn.net/cyshuxin/article/details/40453935

方法一:

新建testView

- (void)drawRect:(CGRect)rect {
    // Start by filling the area with the blue color

    [[UIColor colorWithWhite:0.0f alpha:0.5f] setFill];//阴影效果 根据透明度来设计
    UIRectFill( rect );
    CGRect holeRectIntersection = CGRectIntersection( holeRect, rect );
    [[UIColor clearColor] setFill];
    UIRectFill( holeRectIntersection );
}

ViewController中

UIImage *image = [UIImageimageNamed:@"photo3.jpg"];
    [self.view.layersetContents:(id)[imageCGImage]];

    testView *testVW = [[testViewalloc]initWithFrame:self.view.frame];
    testVW.backgroundColor = [UIColorclearColor];
    testVW.opaque =NO;
    [self.viewaddSubview:testVW];

view 的背景色一定要设置成clearColor,opaue一定要设置no;

方法二:

CGRect myRect =CGRectMake(100,100,200, 200);
    int radius = myRect.size.width/2.0;
    UIBezierPath *path = [UIBezierPathbezierPathWithRoundedRect:CGRectMake(0,0, backView.bounds.size.width, backView.bounds.size.height)cornerRadius:0];
    UIBezierPath *circlePath = [UIBezierPathbezierPathWithRoundedRect:CGRectMake(100,100,2.0*radius,2.0*radius)cornerRadius:radius];
    [path appendPath:circlePath];
    [path setUsesEvenOddFillRule:YES];

    CAShapeLayer *fillLayer = [CAShapeLayerlayer];
    fillLayer.path = path.CGPath;
    fillLayer.fillRule =kCAFillRuleEvenOdd;
    fillLayer.fillColor = [UIColorgrayColor].CGColor;
    fillLayer.opacity =0.5;
    [backView.layeraddSublayer:fillLayer];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值