ios - 动态 UITableView 标题(不是节标题)自动布局问题

标签 ios uitableview uiview header autolayout

我需要将 tableViewHeader 添加到 UITableView,它包含两个标签,所有内容都需要使用自动布局动态调整大小。因此,我在 XIB 中创建了一个标题 View ,使用 systemLayoutSizeFittingSize: 对其进行了测量,并将 View 设置为 tableViewHeader。结果如下所示:

result

如您所见,带有作者姓名(“Brian Mancini”)的标签在文本上方和下方有额外的空间。我怎样才能摆脱它?

-更新-

这是演示项目:link这是 Interface Builder View 约束的屏幕截图:

IB constraints

最佳答案

最近我在我的项目中解决了与表头 View 自动布局相同的问题。您最好提供有关您当前 IB 配置的更多信息,以便我可以更有效地提供帮助,但下面让我尝试将我的解决方案翻译到您的项目上下文中,看看是否有帮助:

  1. 将 2 个标签放在一个容器中 (UIView)
  2. 配置必要的约束以实现您希望的布局(只需执行与之前设置标签与最顶层 View 之间的约束相同的操作即可)
  3. 配置容器和最顶层 View 之间的必要边距

这样做,表头 View 高度计算就不再需要了。让自动布局为您完成这项工作!

它应该是这样的(黄色框是添加的容器 View ,其他一切保持不变)

enter image description here

另请注意,将自定义 View 分配给表头 View 后,应调用layoutIfNeeded,否则它不知道调整到哪里;)

enter image description here

请查找固定版本HERE

编码愉快!

关于ios - 动态 UITableView 标题(不是节标题)自动布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32356226/

相关文章:

ios - 隐藏导航栏但显示带背景的状态栏

iphone - UITableView 延迟加载问题

ios - 如何将 Storyboard 中的多个按钮连接到一个 Action ?

ios - 具有重叠 UIView 的 Swift 滑动手势识别器

ios - UILocalNotification 在应用程序启动时被重复调用

ios - 了解该应用程序。在 Objective C 中启动

ios - UIAlertView 显示在 KeyWindow 的 subview 下

ios - 填充 UITableView 的最有效方法

ios - 在 UIViewController 中显示 uitableview 的问题 - 未对齐

ios - 如何在没有任何导航 Controller 的情况下从 vc1.view 过渡到 iOS 中的 vc2.view?