XCode: 是否可以创建可重用的堆栈视图?
XCode: Is it possible to create reusable stack views?
是否可以在故事板上创建可在以后动态生成的可重用堆栈视图?有点像 template/widget/component.
我知道我可以用 class 来做到这一点,但如果我能够直观地生成一组可以在以后重复使用的组件,我也许可以让我们的设计师直接更改故事板。
是的 -- 您可以使用任何 UIView 执行此操作。有很多教程(例如 http://onedayitwillmake.com/blog/2013/07/ios-creating-reusable-uiviews-with-storyboard/)
基本思路是将一个拖到 Storyboard 或 XIB 上,为其自定义 class,然后实现视图的 awakeFromNib
以加载它。
Yes.It是。
- 创建一个空的 xib,然后向其中添加堆栈视图。
然后创建一个扩展 UIStackView 的 class。
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 属性,转到命名为自定义 class 的第 3 个栏,为 class 命名为 stackView class姓名
是否可以在故事板上创建可在以后动态生成的可重用堆栈视图?有点像 template/widget/component.
我知道我可以用 class 来做到这一点,但如果我能够直观地生成一组可以在以后重复使用的组件,我也许可以让我们的设计师直接更改故事板。
是的 -- 您可以使用任何 UIView 执行此操作。有很多教程(例如 http://onedayitwillmake.com/blog/2013/07/ios-creating-reusable-uiviews-with-storyboard/)
基本思路是将一个拖到 Storyboard 或 XIB 上,为其自定义 class,然后实现视图的 awakeFromNib
以加载它。
Yes.It是。
- 创建一个空的 xib,然后向其中添加堆栈视图。
然后创建一个扩展 UIStackView 的 class。
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 属性,转到命名为自定义 class 的第 3 个栏,为 class 命名为 stackView class姓名