在iOS中设置CALayer'borderWidth'和'cornerRadius',不能完全覆盖背景

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.yuanjiao.backgroundColor = [UIColor blackColor]; self.yuanjiao.layer.cornerRadius = self.yuanjiao.frame.size.width/2; self.yuanjiao.layer.masksToBounds = YES; self.yuanjiao.layer.borderWidth = 5; self.yuanjiao.layer.borderColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:1].CGColor; // self.yuanjiao.layer.shadowOffset = CGSizeMake(0, 0); // self.yuanjiao.layer.shadowRadius = 0.0; // self.yuanjiao.layer.shadowColor = [UIColor whiteColor].CGColor; // self.yuanjiao.layer.shadowOpacity = 0.0; } 

影响:

i.stack.imgur.com/alPDr.png

边框不完全覆盖背景。

设置shadowxxx不起作用。

这是图层属性的预期行为。 如果您查看Apple文档的borderWidth属性,您会发现: –

讨论
当此值大于0.0时,图层将使用当前的borderColor值绘制边框。 边界从接收器边界被插入在此属性中指定的值。 它被合成在接收者的内容和子层之上,并且包含了cornerRadius属性的效果。

该属性的默认值是0.0。

如果您需要用blackColor填充borderWidth部分,那么您有两个select

  1. 有没有一个边界的颜色是不同的观点内容。 根本无法看到边框。 所有你会看到的是一个更大的blackColor圈填充blackColor
  2. 如果你想保持边框,还需要填充黑色,然后将borderColor属性分配给blackColor