ios - 自定义 UIButton 子类
问题描述
我正在尝试我自己的自定义 UIButton。我继承了 UIButton 类并尝试添加一些功能,这是我的代码:
import UIKit
class CustomButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
setup()
setGradientBackground()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}
private func setup() {
layer.cornerRadius = 8
}
private func setGradientBackground() {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = bounds
gradientLayer.colors = [UIColor.yellow.cgColor, UIColor.blue.cgColor]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.startPoint = CGPoint(x: 1.0, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 0.0)
layer.insertSublayer(gradientLayer, at: 0)
}
}
我将它链接到我的 IBOutlet :
@IBOutlet weak var myButton: CustomButton!
什么都适用!
解决方案
如果您在情节提要中添加按钮,则调用的初始化程序是init?(coder aDecoder: NSCoder)
,而不是init(frame: CGRect)
,因此您需要添加...</p>
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
setGradientBackground()
}
推荐阅读
- android - Cookie 和自定义标头 - webview
- video-streaming - GStreamer - 更改 RSTP 流的分辨率
- javascript - 有人可以解释一下这个javascript代码是如何工作的吗?
- c# - Asp.Net.Mvc.SignInResult 如何转为 AccessToken
- zapier - zapier performResume 步骤未被等待/运行
- python - 为什么烧瓶应用程序运行主机在较新版本中不起作用?
- java - 如何按集合的集合的属性排序(集合链)
- lua - 为什么我的 debounce 不起作用,但没有产生错误?
- plot - 增加 Julia 图中的标签大小
- javascript - Firestore:如何使用查询正确更新多个文档