Cli*_*rum 2 uibutton ios swift swift-extensions ibinspectable
我正在使用像这样的Swift扩展@IBInspectable来设置边框颜色UIButton:
extension UIButton {
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
layer.masksToBounds = newValue > 0
}
}
}
Run Code Online (Sandbox Code Playgroud)
...但我也想拥有按钮状态的selectedBorderColor属性.Selected.这可能是这样的扩展吗?我是否必须以UIButton某种方式继承并检查按钮状态?
extension UIButton {
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
layer.masksToBounds = newValue > 0
}
}
//This is what I want to do...
@IBInspectable var selectedBorderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
layer.masksToBounds = newValue > 0
}
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
您可以UIButton像这样子类:
class SBButton: UIButton {
@IBInspectable var borderColor : UIColor = UIColor.whiteColor() {
didSet {
self.setNeedsDisplay()
}
}
@IBInspectable var selectedBorderColor : UIColor = UIColor.blackColor() {
didSet {
self.setNeedsDisplay()
}
}
override var selected: Bool {
didSet {
if selected {
layer.borderColor = selectedBorderColor.CGColor
} else {
layer.borderColor = borderColor.CGColor
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
并使用 button.selected = true
| 归档时间: |
|
| 查看次数: |
3225 次 |
| 最近记录: |