2010-12-01 93 views
34

由於UIProgressHUD需要訪問私人API, 所以我希望構建一個圓角和白色邊框UIView。 我知道要出角球輪是:UIView與圓角和白色邊框

view.layer.cornerRadius = 5; 

但如何使UIView的具有同時圓角和白色邊框?

歡迎任何評論

感謝 InterDev中

回答

75

從同一層對象:

view.layer.borderWidth = 1; 
view.layer.borderColor = [[UIColor whiteColor] CGColor]; 
11

有視圖層邊框屬性,以及:如:

view.layer.borderWidth = 1; 
view.layer.borderColor = [UIColor redColor].CGColor; 
+2

CALayer的是核心動畫,不UIKit中的一部分。因此,它需要一個CGColor,而不是UIColor。 – MarkPowell 2010-12-01 17:35:05

+1

哦,是的,抱歉,我只是從我的頭上打字。 – 2010-12-01 19:52:05

0
[view.layer setBorderWidth:2]; 

[view.layer setBorderColor:[[UIColor whiteColor]CGColor]]; 
4

代碼來獲得圓角和邊框

#import <QuartzCore/QuartzCore.h> 
view.layer.cornerRadius = 10; 
view.layer.borderWidth = 1; 
view.layer.borderColor = [[UIColor whiteColor] CGColor]; 
6

有時用白色邊框圓角半徑不能正常工作所以我用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; 

爲了使邊框白色

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]; 

它將工作。希望這有助於

5
view.layer.cornerRadius = 5; 
view.clipsToBounds = YES; 
view.layer.borderWidth = 1; 
view.layer.borderColor = [UIColor whiteColor].CGColor;