【问题标题】:Update tableView height on basis of number of sections根据节数更新 tableView 高度
【发布时间】:2014-05-29 07:34:44
【问题描述】:

我想根据使用自动布局的节数调整我的tableview高度

第一节和第二节的节数可能vary.Data 不固定。 每个部分都有不同的数据。

在 TableView 下方是其他组件(UILabelUIButton),它们是固定的,但如果 tableView 缩小或扩展,则调整其位置(TableView 最大高度 = 视图高度)。

我不想给出静态高度。

UITableView 约束的高度将在viewDidLoad 中更改?

如何实现?

【问题讨论】:

  • 请解释一下,你的问题看起来很笼统!
  • 正如我之前伤心的那样,我想根据表格视图有多少部分使用 auoLayout 更新我的表格视图高度。作为没有。的部分可能会有所不同。
  • @TabishSohail UITableview 在其内容太高时滚动,如果您增加它的大小而不是它不会滚动。你的问题没有意义
  • @SimonMcLoughlin 。先生,这实际上是有道理的。表格视图下方还有其他组件,它们是固定的。但是如果表格视图缩小,请相应调整。显然,表格视图将滚动,因为将为此定义一个最大高度。

标签: ios iphone objective-c uitableview ios7


【解决方案1】:

我认为仅使用 autoLayout 是无法实现的。我相信您将需要进行一些计算并修改已在 IB 中设置的约束或在代码中自己添加它们。

tableView 本质上是scrollView,当在autoLayout 中使用这些时,您必须提供 2 条信息

  1. tableView/scrollView的大小
  2. contentView 的大小

使用tableView,将为您处理 2,但您必须为每一行指定一个大小,autoLayout 可以使用 heightForRowAtIndexPath 回调和 systemLayoutSizeFittingSize:UILayoutFittingCompressedSize 方法为您计算。

这两个方面的处理方式不同,我不知道有什么方法可以加入它们。据我所知,它的设计目的是让您告诉scrollView 的大小/形状并为其提供内容,如果有它就会滚动,如果没有它就不会滚动,它没有了解内容大小以便自行调整大小。

【讨论】:

  • @TabishSohail 很高兴它成功了。不要忘记将其标记为最佳答案/支持它,以便其他面临相同问题的人不会为您解决它
  • 先生,感谢您的支持。我已经实现了这个功能。就像你说的。我刚刚更新了视图中的高度约束,确实根据每个部分将拥有的数据数组的计数进行了加载。 tableView 有一个最大高度。如果有多个部分 _tbleViewHeightConstraint.constant = MAX_TbleViewHeight。 else _tbleViewHeightConstraint.constant=yourArray.count*rowheight
  • 对不起,我现在不能投票,因为我没有那么多排名。但我肯定会尽快提高我的排名
  • @TabishSohail 是的,我没有意识到这一点。标记为最佳答案会让其他人知道这解决了您的问题
【解决方案2】:

尝试使用 Heightforrowatindexpath 委托来确定大小。然后根据您在该部分中提到的那个高度使用自动布局。更好的是,您可以通过代码更改它,这对于这种情况最有用。

【讨论】:

  • 用户询问如何增加tableView的高度而不是行。此外,您还没有提供任何代码或示例
猜你喜欢
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多