2015-09-02 48 views
1

我已经通过在线一些教程创建了具有两个标签的自定义视图。我已将定制的xib连接到带有两个标签的插座的swift类文件。当我初始化从视图控制器我需要呈现视图的视图,我收到上线一个SIGABRT错误使用Swift在Xcode 6中使用xib在自定义uiview中获取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)。

回答

0

这可能是你的问题的解决方案:

更改此功能:

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/

相关问题