Ios 为什么标记为@IBInspectable的属性不起作用?
我按照此处创建了一个可检查和可设计的视图。我只想在Ios 为什么标记为@IBInspectable的属性不起作用?,ios,swift,ibdesignable,ibinspectable,Ios,Swift,Ibdesignable,Ibinspectable,我按照此处创建了一个可检查和可设计的视图。我只想在UIView中添加边框颜色、边框宽度和圆角边框功能 我已经成功地展示了这些属性。但不管我在故事板上设置了什么,结果仍然是,如果他们不在那里。没有边框,即使我已经将边框的宽度设置为2,颜色设置为黑色。它不会同时在故事板和运行时显示。我已将边框宽度设置为2,但在运行时,我在didViewLoad打印边框宽度值,结果为0。可能有什么问题 @IBDesignable extension view: UIView { @IBInspectable
UIView
中添加边框颜色、边框宽度和圆角边框功能
我已经成功地展示了这些属性。但不管我在故事板上设置了什么,结果仍然是,如果他们不在那里。没有边框,即使我已经将边框的宽度设置为2,颜色设置为黑色。它不会同时在故事板和运行时显示。我已将边框宽度设置为2,但在运行时,我在didViewLoad打印边框宽度值,结果为0。可能有什么问题
@IBDesignable extension view: 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 = borderWidth;
}
}
@IBInspectable var borderColor: UIColor? {
get {
return UIColor(CGColor: layer.borderColor!);
}
set {
layer.borderColor = borderColor?.CGColor
}
}
}
这也不起作用:
@IBDesignable class BOView: 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 = borderWidth;
}
}
@IBInspectable var borderColor: UIColor? {
get {
return UIColor(CGColor: layer.borderColor!);
}
set {
layer.borderColor = borderColor?.CGColor
}
}
}
尝试使用newValue而不是实际值 比如说,
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
Chen,我确实更喜欢你这样做,但也要注意,你试图做的事情可以直接从故事板上完成,而不需要使用IBDesignable。可以在用户定义的运行时属性中设置图层特性
尝试使用newValue而不是实际值 比如说,
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
Chen,我确实更喜欢你这样做,但也要注意,你试图做的事情可以直接从故事板上完成,而不需要使用IBDesignable。可以在用户定义的运行时属性中设置图层特性
您在发布之前检查过这个答案吗?有用吗?就是这样!是的,我需要使用
newValue
而不是变量名。谢谢但是IBDesignable仍然不起作用。。。但这是一个巨大的飞跃!!等等,IB可设计现在可以工作了!!我不知道为什么!也许我需要关闭并重新打开Xcode。谢谢很高兴。你的分机能用吗?它可能真的很方便。@carienvanzil是的,是的!现在有一个全新的世界和各种可能性展现在我面前,哈哈。过去我必须实现控制器并运行它,只是为了看看边界是什么样子。我认为这个可检查和可设计的东西非常复杂,所以直到现在我才去了解它。哦,我离真相实在太远了,哈哈。你在发布之前检查过这个答案吗?有用吗?就是这样!是的,我需要使用newValue
而不是变量名。谢谢但是IBDesignable仍然不起作用。。。但这是一个巨大的飞跃!!等等,IB可设计现在可以工作了!!我不知道为什么!也许我需要关闭并重新打开Xcode。谢谢很高兴。你的分机能用吗?它可能真的很方便。@carienvanzil是的,是的!现在有一个全新的世界和各种可能性展现在我面前,哈哈。过去我必须实现控制器并运行它,只是为了看看边界是什么样子。我认为这个可检查和可设计的东西非常复杂,所以直到现在我才去了解它。哦,我真是太离谱了,哈哈。你打开菜单了吗➜ <代码>自动刷新视图在IB中打开?@holex该选项已打开。您是否已打开菜单编辑器
➜ <代码>自动刷新视图在IB?@holex中打开,该选项已打开。