[英]Getting SIGABRT in custom uiview using xib in Xcode 6 using Swift
通過在線閱讀一些教程,我創建了帶有兩個標簽的自定義視圖。 我已將自定義xib連接到帶有兩個標簽出口的swift class文件。 當我從需要顯示視圖的視圖控制器初始化視圖時,在行上收到SIGABRT
錯誤
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
自定義視圖類的代碼如下:
import UIKit
@IBDesignable class LevelButton: UIView {
@IBOutlet weak var levelLabel: UILabel!
@IBOutlet weak var score: UILabel!
var view:UIView!
var levelLabelText:String?
{
get
{
return levelLabel.text
}
set(levelLabelText)
{
levelLabel.text = levelLabelText
}
}
var scoreText:String?
{
get{
return score.text
}
set(scoreText)
{
score.text = scoreText
}
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init(coder aDecoder:NSCoder)
{
super.init(coder: aDecoder)
setup()
}
func setup()
{
view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
addSubview(view)
}
func loadViewFromNib() -> UIView
{
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: "LevelButton", bundle: bundle)
let view = nib.instantiateWithOwner(nil, options: nil)[0] as! UIView
return view
}
}
在主故事板上,我添加了一個視圖,並使用上述代碼將其自定義類設置為該類,但該類未顯示任何內容,並給出了SIGABRT錯誤。
我無法解決。 請提出建議(僅限Swift)。
這可能是您的問題的解決方案:
更改此功能:
func setup()
{
view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
addSubview(view)
}
至:
func setup() {
if self.subviews.count == 0 {
view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
addSubview(view)
}
}
來源: http : //blog.boxuanzhang.me/custom-reusable-uiview-with-xib/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.