直接上代碼:
@property (weak, nonatomic) IBOutlet UIImageView *userHead;
@property (nonatomic,strong) CAShapeLayer * userMaskLayer;
self.userHead.layer.mask = [self userHeaderMask:self.userHead];
-
(CALayer *)userHeaderMask:(UIView *)originalView{
CALayer * userMask = [CALayer layer];
userMask.frame = originalView.bounds;CGFloat x = originalView.frame.size.width/2;
CGFloat y = originalView.frame.size.height/2;self.userMaskLayer = [CAShapeLayer layer];
self.userMaskLayer.bounds = originalView.bounds;
self.userMaskLayer.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(x, y) radius:50 startAngle:0 endAngle:2*M_PI clockwise:YES].CGPath;
self.userMaskLayer.position = CGPointMake(50, 50);
[userMask addSublayer:self.userMaskLayer];return userMask;
}
原理:通過設置UIImageView的layer的mask屬性。
一般我們都是用
self.userHead.layer.cornerRadius = 50;
self.userHead.layer.masksToBounds = YES;
這種方法來設置圖片圓角,這樣是改變了view的layer屬性。