iOS view上添加透视区域

本文介绍了一种在iOS应用中实现视图遮罩与圆角效果的方法,通过使用CAShapeLayer和UIBezierPath,可以创建具有特定圆角和透视区域的自定义遮罩层。
/// view 添加透视区域
/// @param rect 区域的fram
/// @param cornerRadii 圆角的宽高
- (CAShapeLayer *)emptyLayerWithRect:(CGRect)rect cornerRadii:(CGSize)cornerRadii
{
    UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:(UIRectCornerTopLeft |UIRectCornerTopRight |UIRectCornerBottomRight|UIRectCornerBottomLeft) cornerRadii:cornerRadii];
    UIBezierPath *pathBase = [UIBezierPath bezierPathWithRect:[UIScreen mainScreen].bounds];
    [pathBase appendPath:bezierPath];
    pathBase.usesEvenOddFillRule = YES;
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    shapeLayer.path = pathBase.CGPath;
    shapeLayer.fillColor= [UIColor blackColor].CGColor;  //非透明颜色
    shapeLayer.fillRule=kCAFillRuleEvenOdd;
    return shapeLayer;
}
// 调用
self.view.layer.mask = [self emptyLayerWithRect:CGRectMake(10, 10, 60, 100) cornerRadii:CGSizeMake(5, 5)];

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值