如何以编程方式在滚动视图中嵌入堆栈视图
Posted
技术标签:
【中文标题】如何以编程方式在滚动视图中嵌入堆栈视图【英文标题】:How to embed stack view in scroll view programmatically 【发布时间】:2016-01-22 11:59:19 【问题描述】:我尝试过嵌入它,但我的堆栈视图是动态的,而且我的应用程序也会不时改变方向。我在视图的末尾有段控制。 我也试过用谷歌搜索,但没有运气。提前致谢。
到目前为止我已经完成了:
在视图中确实加载了:
mainStackView.axis = UILayoutConstraintAxis.Vertical
mainStackView.spacing = 3
scrollView.frame = self.view.bounds
scrollView.addSubview(mainStackView)
view.addSubview(scrollView)
在视图中做了布局:
override func viewDidLayoutSubviews()
super.viewDidLayoutSubviews()
let top = topLayoutGuide.length
let bottom = bottomLayoutGuide.length
self.mainStackView.frame = CGRect(x: 0, y: top, width: view.frame.width, height: view.frame.height - top - bottom).insetBy(dx: 10, dy: 10)
dispatch_async(dispatch_get_main_queue())
self.scrollView.frame = self.view.bounds
self.scrollView.contentSize = CGSize(width: self.view.bounds.width, height: self.segmentedControl.frame.origin.y + self.segmentedControl.frame.height + 50)
print(scrollView.contentSize)
【问题讨论】:
【参考方案1】:需要设置段控制的高度约束。
例如:
segmentedControl.heightAnchor.constraintEqualToConstant(50).active = true
此外,您可以添加空底视图以避免堆栈视图的必须填充机制。这将向您显示所需的视图输出。
var bottomView = UIView(frame: CGRectZero)
stackView.addArrangedSubview(bottomView)
【讨论】:
以上是关于如何以编程方式在滚动视图中嵌入堆栈视图的主要内容,如果未能解决你的问题,请参考以下文章