如何以编程方式设置滚动视图高度

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(放置在滚动视图内)在以编程方式更改高度常量时不显示其子视图

以编程方式展开 ScrollView 的高度

以编程方式滚动底部的滚动视图 - iphone

以编程方式使用 Swift 在 Spritekit 中滚动视图(无情节提要)

Xcode 10 - 以编程方式添加按钮时,滚动视图不允许滚动

UIScrollView 以编程方式滚动到底部