UIImageView 的双色边框
Double colored border for UIImageView
我想设置一个周围有 2 个边框的图像。是否可以以某种方式在同一图像视图上复制 borderWidth
属性?像这样:
// inner circle/border
self.avatar.layer.borderWidth = 2.0f;
// outer circle/border
self.avatar.layer.borderWidth = 4.0f;
UIColor *myColor = [UIColor colorWithRed:(24.0 / 255.0) green:(169.0 / 255.0) blue:(250.0 / 255.0) alpha: 1];
UIColor *myColor2 = [UIColor colorWithRed:(24.0 / 255.0) green:(169.0 / 255.0) blue:(20.0 / 255.0) alpha: 1];
self.avatar.layer.borderColor = myColor.CGColor;
self.avatar.layer.borderColor = myColor2.CGColor;
不幸的是,这段代码不起作用,但如果有任何像这样简单的解决方案,我会非常高兴。实际上我唯一的想法是复制 UIImageView
,将其放在 "real" 图像下方并为其设置边框。这种方法可行,但我需要一个更清洁的解决方案。
为此,您可以将 UIImageView
添加到 UIView
中并设置 UIView
的图层。
你可以这样做:
self.avatar.layer.borderWidth = 2.0f;
UIColor *myColor = [UIColor colorWithRed:(24.0 / 255.0) green:(169.0 / 255.0) blue:(250.0 / 255.0) alpha: 1];
UIColor *myColor2 = [UIColor colorWithRed:(24.0 / 255.0) green:(169.0 / 255.0) blue:(20.0 / 255.0) alpha: 1];
CGPoint point = self.avatar.frame.origin;
CGFloat width = self.avatar.frame.size.width;
CGFloat height = self.avatar.frame.size.height;
UIView *holderView = [[UIView alloc] initWithFrame:CGRectMake(point.x, point.y, width+4, height+4)];
holderView.layer.borderWidth = 2.0;
self.avatar.layer.borderColor = myColor.CGColor;
holderView.layer.borderColor = myColor2.CGColor;
[self.avatar setFrame:CGRectMake(2, 2, width, height)];
[holderView addSubview:self.avatar];
[self.view addSubview:holderView];
或者您可以添加一个新的 CALayer
作为现有图层的子图层来执行此操作。
我想设置一个周围有 2 个边框的图像。是否可以以某种方式在同一图像视图上复制 borderWidth
属性?像这样:
// inner circle/border
self.avatar.layer.borderWidth = 2.0f;
// outer circle/border
self.avatar.layer.borderWidth = 4.0f;
UIColor *myColor = [UIColor colorWithRed:(24.0 / 255.0) green:(169.0 / 255.0) blue:(250.0 / 255.0) alpha: 1];
UIColor *myColor2 = [UIColor colorWithRed:(24.0 / 255.0) green:(169.0 / 255.0) blue:(20.0 / 255.0) alpha: 1];
self.avatar.layer.borderColor = myColor.CGColor;
self.avatar.layer.borderColor = myColor2.CGColor;
不幸的是,这段代码不起作用,但如果有任何像这样简单的解决方案,我会非常高兴。实际上我唯一的想法是复制 UIImageView
,将其放在 "real" 图像下方并为其设置边框。这种方法可行,但我需要一个更清洁的解决方案。
为此,您可以将 UIImageView
添加到 UIView
中并设置 UIView
的图层。
你可以这样做:
self.avatar.layer.borderWidth = 2.0f;
UIColor *myColor = [UIColor colorWithRed:(24.0 / 255.0) green:(169.0 / 255.0) blue:(250.0 / 255.0) alpha: 1];
UIColor *myColor2 = [UIColor colorWithRed:(24.0 / 255.0) green:(169.0 / 255.0) blue:(20.0 / 255.0) alpha: 1];
CGPoint point = self.avatar.frame.origin;
CGFloat width = self.avatar.frame.size.width;
CGFloat height = self.avatar.frame.size.height;
UIView *holderView = [[UIView alloc] initWithFrame:CGRectMake(point.x, point.y, width+4, height+4)];
holderView.layer.borderWidth = 2.0;
self.avatar.layer.borderColor = myColor.CGColor;
holderView.layer.borderColor = myColor2.CGColor;
[self.avatar setFrame:CGRectMake(2, 2, width, height)];
[holderView addSubview:self.avatar];
[self.view addSubview:holderView];
或者您可以添加一个新的 CALayer
作为现有图层的子图层来执行此操作。