2016-07-14 8 views

答えて

1
@IBDesignable class Menu: UIView { 

    var view: UIView! 

    override init(frame: CGRect) { 

     super.init(frame: frame) 
     xibSetup() 
    } 

    required init?(coder aDecoder: NSCoder) { 

     super.init(coder: aDecoder) 
     xibSetup() 
    } 

    func xibSetup() { 

     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: "Menu", bundle: bundle) 
     let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView 

     return view 
    } 

    etc etc ... 
} 

Nib Name

Nib Identity Inspector

そして、そのビューのアイデンティティインスペクタのMenuクラスと同じように、あなたのMain.storyboardにUIViewのを追加します。

+0

なぜ、ビューを返すのではなく、nibで得られたビューをサブビューとして追加していますか? NIBに含まれるビューが 'Menu'ビューである場合、それは無限ループになります。 – redent84