gpt4 book ai didi

ios - 使用扩展创建自定义 UIButton

转载 作者:行者123 更新时间:2023-11-28 10:16:13 26 4
gpt4 key购买 nike

我是 iOS 和 Swift 的新手,我需要一些帮助。

我想创建自定义 UIButton

这是我做的

protocol ButtonProtocol {}


extension ButtonProtocol where Self: UIButton {

func addOrangeButton(){
layer.cornerRadius = 8
layer.backgroundColor = UIColor(netHex:ButtonColor.orange).cgColor
}
}

我希望所有参数都来自这里,包括 cornerRadius、backgrounColor、highlightedColor、textColor、size 等......

我想用这种方式 bcoz 也许将来按钮颜色会改变我会直接从一个地方改变它。

但我不明白什么是图层,我怎么能将它转换为 UIButton?

谁能告诉我应该走哪条路?

最佳答案

您可以创建 UIButton 的子类,为您的按钮添加您自己的自定义外观。像这样

import UIKit

protocol DVButtonCustomMethods: class {
func customize()
}

class DVButton: UIButton {
var indexPath: IndexPath?

override init(frame: CGRect) {
super.init(frame: frame)
customize()// To set the button color and text size
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
customize()// To set the button color and text size
}

override func layoutSubviews() {
super.layoutSubviews()
customize()
}

}

extension DVButton: DVButtonCustomMethods {
func customize() {
layer.cornerRadius = self.frame.size.height / 2
backgroundColor = UIColor.white
tintColor = UIColor.red
titleLabel?.textColor = UIColor.black
clipsToBounds = true
}
}

现在需要做的是,在界面生成器中创建一个按钮并将子类指定为它的类。就是这样,一切都会随心所欲地改变。如果你想改变按钮颜色只是在你的子类中改变,它会影响所有分配给你的子类的按钮。

为您的按钮分配子类:引用下图

enter image description here

谢谢:)

关于ios - 使用扩展创建自定义 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41164701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com