如何在 iOS 应用中使滚动视图高度动态化?
Posted
技术标签:
【中文标题】如何在 iOS 应用中使滚动视图高度动态化?【英文标题】:How to make scrollview height dynamic in iOS app? 【发布时间】:2016-07-28 20:16:51 【问题描述】:这是我的结构:
-View
-scrollview
-view
-stackview //main stackview
-stackview1
-label1
-label2
-stackview2
-label1
-label2
-stackview3
-label1
-label2
-stackview4
-label1
-label2
-stackview5 // this is the dynamic vertical stackview
-label1
-label2 //this is the dynamic label
-stackview6
-label1
-label2
我希望滚动视图基于 stackview5 是动态的。我将stackview5中的label2设置为0行。我还将分布设置为等间距。我还缺少什么?
【问题讨论】:
“动态”是什么意思? @matt 抱歉,我是说动态高度。 可以将stackview
的大小固定为1,然后根据堆栈视图的数量计算contentSize
为scrollView
。
如果使用自动布局约束更新堆栈视图高度并且只需要强制更新滚动视图,为什么还需要设置内容大小,这不是解决问题吗?
为什么要关心滚动视图的高度?这是一个滚动视图!用户可以滚动查看它的任何部分。这就是重点。它的高度不必改变!
【参考方案1】:
我会使用 UITableView
六个 stackview 中的每一个都是他们自己的 tableViewCell
将此添加到您的 TableViewController 加载的视图中
self.tableView.estimatedRowHeight = 58.0 // whatever you want your default to be
self.tableView.rowHeight = UITableViewAutomaticDimension
将此方法也添加到您的 TableViewController
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
return UITableViewAutomaticDimension
【讨论】:
我没有使用表格视图。它是一个滚动视图。 @pixie123 我知道。这就是为什么我说我会使用 TableView。这会让事情变得更容易。 我不知道性能方面有什么缺点。我得看看你现在的表现如何。好处是可以为您计算高度。以上是关于如何在 iOS 应用中使滚动视图高度动态化?的主要内容,如果未能解决你的问题,请参考以下文章
UITableview 单元格高度在 iOS 14.0 中的滚动表视图上发生变化