在 WWDC 2017 presentation 204他们说您可以在自定义 titleView 中使用自动布局。
它发生在 7:53 左右
他们从不展示如何做到这一点的例子。
当我尝试时,我得到一个零尺寸的 View 。
在界面生成器中,我创建了一个 UIView 并添加了一个 UISearchBar 和一个 UIButton 像这样
[seachBar]-[按钮]
它变成零宽度。
有谁知道如何使用这个新功能?
最佳答案
我会回答我自己的问题。
本质上,自动布局的工作方式与您期望的一样。然而,问题在于每个元素要么需要有约束来指定其宽度,要么需要指定其固有大小。例如,如果您将搜索栏替换为 uilabel,则自定义标题 View 将正确地适合标签。搜索栏显然没有内在大小,因此需要控制它的增长。
我在搜索栏后面放了一个 uilabel,并将其限制在搜索栏的顶部、底部、前缘和后缘。我给了文本的 uilabel ALOT 并将其设置为当文本过多时它会被截断。
当我运行该应用程序时,搜索栏的宽度不为零,并且在横向切换时会根据需要缩小和拉伸(stretch)搜索栏。按钮仍会折叠到 0 宽度,但通过将压缩阻力设置为高于 uilabel 可以轻松修复它。
我知道,为此目的添加一个虚拟的 UILabel 是一种黑客行为。我愿意接受任何替代方案...
这是 example project.
关于interface-builder - 如何在 UINavigationBar 自定义 titleView 中使用自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46324704/