2015-03-03 134 views

回答

11

那么不是简单的一个属性,你可以设置将边框与外部对齐。因为UIViews的默认绘图操作在其边界内绘制,所以它绘制在内部对齐。

想到的会是由边框宽度的尺寸应用边框时扩大UIView的最简单的办法:在斯威夫特3

CGFloat borderWidth = 2.0f; 

self.frame = CGRectInset(self.frame, -borderWidth, -borderWidth); 
self.layer.borderColor = [UIColor yellowColor].CGColor; 
self.layer.borderWidth = borderWidth; 
+0

谢谢您非常。你救了我的一天。 – 2015-03-03 06:43:22

+0

是不是应该是'CGRectInset(self.frame,borderWidth,borderWidth)'? – 2017-01-19 09:29:58

+0

@lulian请参阅CGRectInset的文档(“要创建一个嵌入矩形,请指定一个正值。要创建一个更大的包含矩形,请指定一个负值。”) – chrysAllwood 2017-01-23 18:07:23

0

@ aroragourav的回答

let borderWidth: CGFloat = 2 

frame = frame.insetBy(dx: -borderWidth, dy: -borderWidth) 
layer.borderColor = UIColor.yellow.cgColor 
layer.borderWidth = borderWidth