如何以编程方式在滚动视图中嵌入堆栈视图
How to embed stack view in scroll view programmatically
我试过嵌入它,但我的堆栈视图是动态的,我的应用程序也在不时改变方向。我在视图的末尾有段控制。
我也试过谷歌搜索但没有运气。提前致谢。
到目前为止我做了:
在视图中加载:
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)
}
您需要设置段控高度限制
例如:
segmentedControl.heightAnchor.constraintEqualToConstant(50).active = true
此外,您可以添加空底部视图来避免堆栈视图的必须填充机制。这将向您显示所需的视图输出。
var bottomView = UIView(frame: CGRectZero)
stackView.addArrangedSubview(bottomView)
我试过嵌入它,但我的堆栈视图是动态的,我的应用程序也在不时改变方向。我在视图的末尾有段控制。 我也试过谷歌搜索但没有运气。提前致谢。
到目前为止我做了:
在视图中加载:
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)
}
您需要设置段控高度限制
例如:
segmentedControl.heightAnchor.constraintEqualToConstant(50).active = true
此外,您可以添加空底部视图来避免堆栈视图的必须填充机制。这将向您显示所需的视图输出。
var bottomView = UIView(frame: CGRectZero)
stackView.addArrangedSubview(bottomView)