IOS: UIImageView border white with radius display a strange dark line in 4 corners

后端 未结 7 2001
说谎
说谎 2020-12-18 15:59

I set the border white and radius for my ImageView. But in 4 corner of the ImageView, some dark line appear.
Here is the code I set the color

7条回答
  •  萌比男神i
    2020-12-18 16:43

    Actually you have to use two layers.

    self.image.clipsToBounds = YES;
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.image.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(48, 48)];
    CAShapeLayer *maskLayer = [CAShapeLayer layer];
    maskLayer.frame = self.image.bounds;
    maskLayer.path = maskPath.CGPath;
    maskLayer.strokeColor = [UIColor redColor].CGColor;
    
    self.image.layer.mask = maskLayer;
    
    CAShapeLayer*   frameLayer = [CAShapeLayer layer];
    frameLayer.frame = self.image.bounds;
    frameLayer.path = maskPath.CGPath;
    frameLayer.strokeColor = [UIColor whiteColor].CGColor;
    frameLayer.fillColor = nil;
    frameLayer.lineWidth = 20;
    [self.image.layer addSublayer:frameLayer];
    

提交回复
热议问题