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

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

是的。是的。

    创建一个空的 xib,然后向其中添加一个堆栈视图。

    然后创建一个扩展 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
    
    

    创建一个 viewController。添加一个 stackView 到它。在 StackView 属性中,转到名为自定义类的第 3 个栏,对于类名,请给出 stackView 类名

【讨论】:

以上是关于XCode:是不是可以创建可重用的堆栈视图?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 可重用组件

如何创建和使用可重用的视图模板

在添加 LinkPresentation 视图的堆栈上重用单元格时不显示元素

与可重用表格单元格不同的转场

为不同的表视图创建可重用的页脚视图(Swift 5)

Spring MVC可重用视图组件[重复]