Подтвердить что ты не робот

Установить границу вокруг UIImageView

Я хочу применить два типа границы на UIImageView:

  • Один является границей layer UIImageView.
  • Во-вторых, это граница вокруг layer UIImageView.

Как я могу это сделать?

4b9b3361

Ответ 1

Попробуйте

#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

В этом примере будет рисовать рамку на слое, но слегка измените ее, чтобы сделать границу вокруг слоя.

Ответ 2

Другой способ

Вы должны импортировать

#import <QuartzCore/QuartzCore.h>

Затем добавьте код для вашего UIImageView

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

Ответ 3

Другой способ - добавить еще один слой, который немного выходит за пределы слоя 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;