是否可以在故事板上创建可重用堆栈视图,以便以后可以动态使用?排序模板/窗口小部件/组件。XCode:是否可以创建可重用的堆栈视图?
我知道我可以用类做到这一点,但如果我能够直观地生成一组可以在后期重新使用的组件,我可以让我们的设计人员直接更改故事板。
是否可以在故事板上创建可重用堆栈视图,以便以后可以动态使用?排序模板/窗口小部件/组件。XCode:是否可以创建可重用的堆栈视图?
我知道我可以用类做到这一点,但如果我能够直观地生成一组可以在后期重新使用的组件,我可以让我们的设计人员直接更改故事板。
是的 - 你可以用任何UIView做到这一点。这里有很多教程(例如http://onedayitwillmake.com/blog/2013/07/ios-creating-reusable-uiviews-with-storyboard/)
其基本思想是将一个人拖到Storyboard或XIB上,为它定制一个类,然后实现视图的awakeFromNib
加载它。
是的。
然后创建一个扩展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到it.In StackView属性,命名为自定义类转到第3条,类名是给stackView类名