如何以编程方式设置滚动视图高度
Posted
技术标签:
【中文标题】如何以编程方式设置滚动视图高度【英文标题】:How to set scrollview height programmatically 【发布时间】:2018-09-12 08:26:27 【问题描述】:如何使用 Swift 4 在 Xcode 9 中以编程方式设置滚动视图高度?我为滚动视图高度设置了一个约束,并将其添加为一个出口。但是当我以编程方式更改出口常数值时,它不会改变高度。
例子:
@IBOutlet weak var scrollview_height: NSLayoutConstraint!
override func viewDidLoad()
super.viewDidLoad()
self.scrollview_height.constant = 245
【问题讨论】:
你试过self.view.layoutIfNeeded()吗? 您是否也设置了顶部/底部约束?那可能会破坏它。 【参考方案1】:ScrollView
的高度应由其内容给出,而不是您手动更改。如果你想做类似的事情,最好在scrollView
中有一个视图,然后更改该视图的大小。
分步说明:
在您的视图中添加ScrollView
。设置它的约束(没有高度或宽度)
在ScrollView
内添加View
并设置它的约束。此外,对于垂直滚动,您可能希望将其宽度设置为等于 SuperView
并确保其具有高度。
为视图的高度创建一个IBOutlet
在代码中更新约束的常量值
如果未按预期更新,请在更新后在您的超级视图上运行 layoutIfNeeded
【讨论】:
【参考方案2】:你必须增加scrollView的content Size,而不是增加scrollView的frame。
self.scrollview.contentSize = CGSize(width: screenWidth, height: yourDesiredHeight)
scrollView 的可滚动内容大小会根据它改变。
【讨论】:
以上是关于如何以编程方式设置滚动视图高度的主要内容,如果未能解决你的问题,请参考以下文章
UIView(放置在滚动视图内)在以编程方式更改高度常量时不显示其子视图
以编程方式使用 Swift 在 Spritekit 中滚动视图(无情节提要)