XCode:是否可以创建可重用的堆栈视图?

时间:2016-02-24 08:10:46

标签: ios xcode uistackview

是否可以在故​​事板上创建可重复使用的堆栈视图,可以动态使用以在以后生成?模板/小部件/组件的排序。

我知道我可以用一个类来做这个,但是如果我能够直观地生成一组可以在以后重复使用的组件,我可以让我们的设计师直接对故事板进行更改。

2 个答案:

答案 0 :(得分:3)

是的 - 您可以使用任何UIView执行此操作。有很多教程(例如http://onedayitwillmake.com/blog/2013/07/ios-creating-reusable-uiviews-with-storyboard/

基本思想是将一个拖到Storyboard或XIB上,为它创建一个自定义类,然后实现视图的awakeFromNib来加载它。

答案 1 :(得分:2)

是的。它是。

  1. 创建一个空的xib,然后添加一个堆栈视图。
  2. 然后创建一个扩展UIStackView的类。

    class stackView: UIStackView {
    
    var contentView : UIStackView!
    override init(frame: CGRect) {
        super.init(frame: frame)
        xibSetup()
    }
    
    required init(coder: NSCoder) {
        super.init(coder: coder)
        xibSetup()    }
    
    func xibSetup() {
        contentView = loadViewFromNib() 
        contentView.frame = bounds
        contentView.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight]
        addSubview(contentView)
    }
    
    func loadViewFromNib() -> UIStackView! {
    
        let view: UIStackView? = Bundle.main.loadNibNamed("stackView", owner: nil, options: nil)?.first as! UIStackView?
        return view
    }
    
  3. 创建一个viewController.Add给它一个stackView。在StackView属性中,转到第3个栏,它被命名为自定义类,为类名赋予stackView类名