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 ,将它放在“真实”图像下并为其设置边框。 这种方式可行,但我需要一个更清洁的解决方案。

为此,您可以在UIView添加UIImageView并设置该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作为现有图层的子图层来执行此操作。