是否可以在故事板上创建可重复使用的堆栈视图,可以动态使用以在以后生成?模板/小部件/组件的排序。
我知道我可以用一个类来做这个,但是如果我能够直观地生成一组可以在以后重复使用的组件,我可以让我们的设计师直接对故事板进行更改。
答案 0 :(得分:3)
是的 - 您可以使用任何UIView执行此操作。有很多教程(例如http://onedayitwillmake.com/blog/2013/07/ios-creating-reusable-uiviews-with-storyboard/)
基本思想是将一个拖到Storyboard或XIB上,为它创建一个自定义类,然后实现视图的awakeFromNib
来加载它。
答案 1 :(得分: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
}
创建一个viewController.Add给它一个stackView。在StackView属性中,转到第3个栏,它被命名为自定义类,为类名赋予stackView类名