我想设置一个带有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
,把它放在"真实"图像和设置边框。这种方式可行,但我需要一个更清洁的解决方案。
答案 0 :(得分:3)
为此,您可以在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
作为现有图层的子图层来执行此操作。