UIButton子类在故事板中崩溃[重复]
Posted
技术标签:
【中文标题】UIButton子类在故事板中崩溃[重复]【英文标题】:UIButton Subclass Crashes When in Storyboard [duplicate] 【发布时间】:2019-01-07 13:56:30 【问题描述】:我有一个 UIButton 的子类,当我将按钮添加到情节提要中的视图控制器时,我的应用程序崩溃并显示 fatalError("init(coder:) has not been implemented"
)。如果我在代码中手动添加子类按钮,它工作正常。我做错了什么?
import UIKit
class RAPanicButton: UIButton
override init(frame: CGRect)
super.init(frame: frame)
self.layer.cornerRadius = self.frame.height / 2
self.layer.masksToBounds = true
self.clipsToBounds = true
self.backgroundColor = .red
self.setTitle("Panic!", for: .normal)
self.titleLabel?.textColor = .white
required init?(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
【问题讨论】:
【参考方案1】:情节提要中的内容将通过调用init(coder:)
初始化程序进行初始化。这意味着如果你想在故事板中使用你的视图,你一定不能在init(coder:)
中抛出fatalError
。
您可以在两个初始化程序中放入相同的代码:
func setup()
self.layer.cornerRadius = self.frame.height / 2
self.layer.masksToBounds = true
self.clipsToBounds = true
self.backgroundColor = .red
self.setTitle("Panic!", for: .normal)
self.titleLabel?.textColor = .white
override init(frame: CGRect)
super.init(frame: frame)
setup()
required init?(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
setup()
【讨论】:
以上是关于UIButton子类在故事板中崩溃[重复]的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 子类布局在禁用自动布局的故事板中搞砸了
故事板中的子类 viewController 并以编程方式从子类更改 UI