UIView圆角和白色边框

ara*_*ide 35 iphone

由于UIProgressHUD需要访问私有api,所以我希望构建一个UIView带圆角和白色边框.我知道要转角是:

view.layer.cornerRadius = 5;
Run Code Online (Sandbox Code Playgroud)

但是如何让uiview同时具有圆角和白色边框?

欢迎任何评论

谢谢interdev

Mar*_*ell 78

使用相同的图层对象:

view.layer.borderWidth = 1;
view.layer.borderColor = [[UIColor whiteColor] CGColor];
Run Code Online (Sandbox Code Playgroud)


Pha*_*inh 12

有时带有白色边框的圆角半径不能正常工作, 所以我使用UIBezierPathCAShapeLayer.

用于制作角半径

UIBezierPath *maskPath;
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.imageView.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft | UIRectCornerBottomRight) cornerRadii:CGSizeMake(10.0, 10.0)];

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.view.bounds;
maskLayer.path = maskPath.CGPath;
self.imageView.layer.mask = maskLayer;
Run Code Online (Sandbox Code Playgroud)

使边框变白

CAShapeLayer*   borderShape = [CAShapeLayer layer];
borderShape.frame = self.imageView.bounds;
borderShape.path = maskPath.CGPath;
borderShape.strokeColor = [UIColor whiteColor].CGColor;
borderShape.fillColor = nil;
borderShape.lineWidth = 3;
[self.imageView.layer addSublayer:borderShape];
Run Code Online (Sandbox Code Playgroud)

它会工作.希望这有帮助

  • 当我想要带有白色边框的圆形图像时,使用.cornerRadius,.borderWidth和.borderColor以及.clipsToBounds似乎给了我围绕imageView的伪像。这为我解决了这个问题。 (2认同)

Jon*_*an. 11

视图层中也有边框属性:例如:

view.layer.borderWidth = 1;
view.layer.borderColor = [UIColor redColor].CGColor;
Run Code Online (Sandbox Code Playgroud)

  • CALayer是Core Animation的一部分,而不是UIKit.因此,它需要一个CGColor,而不是UIColor. (2认同)

Sha*_*yaz 5

获得圆角和边框的代码

#import <QuartzCore/QuartzCore.h>
view.layer.cornerRadius = 10;
view.layer.borderWidth = 1;
view.layer.borderColor = [[UIColor whiteColor] CGColor];
Run Code Online (Sandbox Code Playgroud)


KSR*_*KSR 5

view.layer.cornerRadius = 5;
view.clipsToBounds = YES;
view.layer.borderWidth = 1;
view.layer.borderColor = [UIColor whiteColor].CGColor;
Run Code Online (Sandbox Code Playgroud)