在UIImageView周围设置边框

我想在UIImageView上应用两种types的边框:

  1. 一个是UIImageView layer的边框。
  2. 其次是UIImageView layer的边框。

我怎样才能做到这一点?

尝试

 #define kBorderWidth 3.0 #define kCornerRadius 8.0 CALayer *borderLayer = [CALayer layer]; CGRect borderFrame = CGRectMake(0, 0, (imageView.frame.size.width), (imageView.frame.size.height)); [borderLayer setBackgroundColor:[[UIColor clearColor] CGColor]]; [borderLayer setFrame:borderFrame]; [borderLayer setCornerRadius:kCornerRadius]; [borderLayer setBorderWidth:kBorderWidth]; [borderLayer setBorderColor:[[UIColor redColor] CGColor]]; [imageView.layer addSublayer:borderLayer]; 

别忘了导入QuartzCore / QuartzCore.h

这个例子将在图层上绘制一个边框,但是稍微改变它的边框以在图层周围创build边框。

其他方式

你必须导入

 #import <QuartzCore/QuartzCore.h> 

然后为您的UIImageView添加代码

 imgView.clipsToBounds = YES; imgView.layer.cornerRadius = 8.0; imgView.layer.borderWidth = 2.0; imgView.layer.borderColor = [UIColor greenColor].CGColor; 

另一种方法是添加另一个图层,使其位于UIImageView图层之外,如下所示:

 CALayer * externalBorder = [CALayer layer]; externalBorder.frame = CGRectMake(-1, -1, myView.frame.size.width+2, myView.frame.size.height+2); externalBorder.borderColor = [UIColor blackColor].CGColor; externalBorder.borderWidth = 1.0; [myView.layer addSublayer:externalBorder]; myView.layer.masksToBounds = NO;