【问题标题】: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()吗?
  • 您是否也设置了顶部/底部约束?那可能会破坏它。

标签: ios swift uiscrollview


【解决方案1】:

ScrollView 的高度应由其内容给出,而不是您手动更改。如果你想做类似的事情,最好在scrollView 中有一个视图,然后更改该视图的大小。

分步说明:

  • 在您的视图中添加ScrollView。设置它的约束(没有高度或宽度)
  • ScrollView 内添加View 并设置它的约束。此外,对于垂直滚动,您可能希望将其宽度设置为等于 SuperView 并确保其具有高度。
  • 为视图的高度创建一个IBOutlet
  • 在代码中更新约束的常量值
  • 如果未按预期更新,请在更新后在您的超级视图上运行 layoutIfNeeded

【讨论】:

    【解决方案2】:

    你必须增加scrollView的content Size,而不是增加scrollView的frame。

    self.scrollview.contentSize = CGSize(width: screenWidth, height: yourDesiredHeight) 
    

    scrollView 的可滚动内容大小会根据它改变。

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-29
      • 1970-01-01
      相关资源
      最近更新 更多