我UIButton在ios中创建了一个自定义。我想使用相同的自定义按钮十次,它们具有相同的属性但标题不同。在不为每个按钮重复相同代码的情况下,最有效,最聪明的方法是什么?它应该是结构还是类还是其他?我该如何实施?我为自定义按钮更改的属性如下:
@IBOutlet weak var button_1: UIButton!
button_1.frame = CGRectMake(0.0, 0.0, button_1.frame.width, button_1.frame.height)
button_1.clipsToBounds = true
button_1.layer.cornerRadius = button_1.frame.width/2.0
button_1.layer.borderColor = UIColor.whiteColor().CGColor
button_1.layer.borderWidth=2.0
Run Code Online (Sandbox Code Playgroud)
您可以创建自己的类,从 UIButton
import UIKit
@IBDesignable
final class CoyoteButton: UIButton {
var borderWidth: CGFloat = 2.0
var borderColor = UIColor.white.cgColor
@IBInspectable var titleText: String? {
didSet {
self.setTitle(titleText, for: .normal)
self.setTitleColor(UIColor.black,for: .normal)
}
}
override init(frame: CGRect){
super.init(frame: frame)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
setup()
}
func setup() {
self.clipsToBounds = true
self.layer.cornerRadius = self.frame.size.width / 2.0
self.layer.borderColor = borderColor
self.layer.borderWidth = borderWidth
}
}
Run Code Online (Sandbox Code Playgroud)
要将文本设置为按钮,只需编写myButton.titleText = "myText"。
然后,您可以UIButton从界面构建器中拖放一个,然后将该按钮的类更改为您自己的MyOwnButton,或者通过代码创建一个。
您需要创建extension的UIButton是这样
extension UIButton {
class func attributedButton(frame: CGRect) -> UIButton {
let button = UIButton(frame: frame)
button.clipsToBounds = true
button.layer.cornerRadius = button_1.frame.width/2.0
button.layer.borderColor = UIColor.whiteColor().CGColor
button.layer.borderWidth = 2.0
return button
}
}
Run Code Online (Sandbox Code Playgroud)
现在以这种方式调用此方法
let button = UIButton.attributedButton(frame: CGRectMake(20, 20, 10, 40)
button.setTitle("Title", forState: .Normal)
self.view.addSubview(button)
Run Code Online (Sandbox Code Playgroud)
现在,每次要创建具有这些固定属性的按钮时,都可以使用此方法。
| 归档时间: |
|
| 查看次数: |
7655 次 |
| 最近记录: |