在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; }
影响:
边框不完全覆盖背景。
设置shadowxxx不起作用。
这是图层属性的预期行为。 如果您查看Apple文档的borderWidth
属性,您会发现: –
讨论
当此值大于0.0时,图层将使用当前的borderColor值绘制边框。 边界从接收器边界被插入在此属性中指定的值。 它被合成在接收者的内容和子层之上,并且包含了cornerRadius属性的效果。该属性的默认值是0.0。
如果您需要用blackColor
填充borderWidth
部分,那么您有两个select
- 有没有一个边界的颜色是不同的观点内容。 根本无法看到边框。 所有你会看到的是一个更大的
blackColor
圈填充blackColor
。 - 如果你想保持边框,还需要填充黑色,然后将
borderColor
属性分配给blackColor
。