【发布时间】:2017-04-19 07:22:00
【问题描述】:
我正在尝试将圆形边框添加到具有绿色背景的UIView,我创建了具有borderWidth、cornerRadius 和borderColor 属性的简单UIView 子类,并且我正在从情节提要中设置它。
@IBDesignable
class RoundedView: UIView {
@IBInspectable var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable var borderColor: UIColor {
get {
if let color = layer.borderColor {
return UIColor(cgColor: color)
} else {
return UIColor.clear
}
}
set {
layer.borderColor = newValue.cgColor
}
}
}
但是当我编译并运行一个应用程序或在 InterfaceBuilder 中显示它时,我可以看到边界外的一条线仍然存在(并且在白色背景上非常明显)。
这个RoundedView,绿色背景,框架10x10,圆角半径= 5 放置在平原UIImageView 的一角(指示某人是否在线)。您可以在 UIImageView 和白色背景上看到外面的绿色边框。
你能告诉我有什么问题吗?
【问题讨论】:
-
(1) 您没有包含任何代码或说明 UIImageView 如何在 UIView 内定位或任何约束。 (2) 你提到了 IB 和 compile,但是你实际运行应用程序的时候呢?我看到了视图本身的所有正确的东西(代码和你的 IB 截图)......如果 UIImageView 没有边框(和清晰的背景)你应该很好。
-
(1) 更新了我的答案,这个绿点是带边框的
RoundedView,它有这个奇怪的边框问题——它只是放在UIImageView上(2) 当然,编译并运行——这个在绿点周围的模拟器和真实设备中都可以看到边框
标签: ios swift uiview uikit xib