我是swift的新手,我只想创建一个uibutton的子类。除非我选择按钮时出现这个奇怪的蓝色圆角矩形,如下所示。当我想要的只是一个漂亮的白色边框。
我班上的代码:
import UIKit
import QuartzCore
@IBDesignable
class ColorButton: UIButton {
//MARK: PROPERTIES
@IBInspectable var stickerColor: UIColor = UIColor.whiteColor() {
didSet {
configure()
}
}
override var selected: Bool {
willSet(newValue) {
super.selected = newValue;
if selected {
layer.borderWidth = 1.0
} else {
layer.borderWidth = 0.0
}
}
}
//MARK: Initializers
override init(frame : CGRect) {
super.init(frame : frame)
setup()
configure()
}
convenience init() {
self.init(frame:CGRectZero)
setup()
configure()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
configure()
}
override func awakeFromNib() {
super.awakeFromNib()
setup()
configure()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
setup()
configure()
}
func setup() {
//Border color
layer.borderColor = UIColor.whiteColor().CGColor
//Corner Radius
setUpCornerRadius()
}
func configure() {
backgroundColor = stickerColor
}
override func layoutSubviews() {
super.layoutSubviews()
setUpCornerRadius()
}
func setUpCornerRadius() {
layer.cornerRadius = CGRectGetWidth(bounds) * 0.205
}
}
答案 0 :(得分:4)
我检查了你的代码。我也有同样的问题。
但是如果将按钮类型设置为自定义,则不会出现此问题
输出:
为buttonType
找到了一些东西:
您可能会发现CocoaBuilder的主题How to subclass UIButton?上的讨论很有帮助,尤其是Jack Nutting's suggestion to ignore the buttonType:
请注意,这样buttonType没有显式设置为任何东西, 这可能意味着它是UIButtonTypeCustom。文件没有 似乎实际上指定了,但因为那是0中的值 枚举,这可能发生了什么(这似乎是可观察的 行为也是如此)