【问题标题】:XCode: Is it possible to create reusable stack views?XCode:是否可以创建可重用的堆栈视图?
【发布时间】:2016-02-24 08:10:46
【问题描述】:

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

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

【问题讨论】:

    标签: ios xcode uistackview


    【解决方案1】:

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

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

    【讨论】:

      【解决方案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。添加一个 stackView 到它。在 StackView 属性中,转到名为自定义类的第 3 个栏,对于类名,请给出 stackView 类名

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-01
        • 2019-09-22
        • 2020-10-01
        • 2014-10-23
        • 2017-06-21
        • 2010-12-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多