【问题标题】:Constraining a UITableView within UIScrollView在 UIScrollView 中约束 UITableView
【发布时间】:2019-04-02 15:19:17
【问题描述】:

我正在使用情节提要制作应用程序的屏幕。

我已经放置了一个 UIScrollView 和一个 UIVIew。这个想法是让屏幕在 UIVIew 中包含以下项目(从顶部开始):

  • 图像视图
  • 标题标签(单行)
  • 描述标签(多行,动态)
  • 表格视图(动态)

我设置了以下约束:

  • 滚动视图:0 顶部,0 前导,0 尾随,0 底部
  • UIView:0 顶部,0 前导,0 尾部,0 底部,与视图控制器等宽

那么在这个视图内:

  • 图像视图:0 顶部,0 前导,0 尾部,纵横比
  • 标题:8 前,16 后,16 前
  • 说明:顶部 8 个,尾部 16 个,前导 16 个
  • 表格视图:顶部 20 个,前导 0 个,尾随 0 个,底部 20 个

我在其他屏幕上尝试过类似的方法,但只有标签和视图,没有任何问题。然而,这里期望我给表格视图一个我不能的高度,因为要加载的行数是未知的(如果我设置一个高度,所有自动布局问题都会消失)。

如何限制表格视图与其他视图的关系?

我正在使用 Swift 4.2 为 iOS 11 开发 XCode 10。

【问题讨论】:

  • 为什么行数会影响您为表格视图指定高度的能力?行数与设置表格视图的高度无关。将表格视图的高度设置为您想要的任何高度。
  • 为什么不将图片、标题标签和描述标签放在自己的原型单元格中?那么你就不需要滚动视图了。
  • 他可能需要根据桌子的大小把桌子拉到全高
  • @Retterdesdialogs 这是我的第一选择,问题是这个屏幕出现了一个模态segue,我需要在顶角包含一个关闭按钮,该按钮在表格滚动时保持固定。每次我尝试在表格视图控制器中执行此操作时,关闭按钮都会随着表格的其余部分移动。
  • 您可以通过实现 func scrollViewDidScroll(_ scrollView: UIScrollView) 或使用 UIViewController 来固定位置

标签: ios swift uitableview uiscrollview


【解决方案1】:

给它任何高度,然后将其作为插座钩住

self.tableHeight.constant = tableView.contentSize.height
self.view.layoutIfNeeded()

【讨论】:

  • 如果您要为每个单元格显示表格视图的全高,那么使用表格视图有什么意义呢?
猜你喜欢
  • 2014-11-25
  • 2019-03-28
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多