如何在UIView内部添加边框?

6

我有一个UIVIew,想在这个UIVIew内部添加一个边框,大约占据UIView的75%。有人能帮忙吗?我能找到在UIView外绘制边框的解决方案。

2个回答

17

很明显,你不能简单地设置一个属性来使边框向外对齐。它内部绘制是因为UIView的默认绘制操作是在其边界内进行。

我想到的最简单的解决方案是,在应用边框时将UIView扩展边框宽度的大小:

CGFloat borderWidth = 2.0f;

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

非常感谢你。你救了我的一天。 - Ashwin P
2
难道应该是CGRectInset(self.frame, borderWidth, borderWidth)吗? - Iulian Onofrei
@lulian 请查看CGRectInset的文档(“要创建一个内嵌矩形,请指定正值。要创建一个更大的、包围性的矩形,请指定负值。”)。 - 0xWood

7
@aroragourav在Swift 3+中的回答如下:
let borderWidth: CGFloat = 2

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接