interface-builder – 如何在UINavigationBar自定义titleView中使用自动布局


WWDC 2017 presentation 204,他们说你可以在自定义titleView中使用autolayout.

它发生在7:53左右

《interface-builder – 如何在UINavigationBar自定义titleView中使用自动布局》

他们从未展示过如何做到这一点的例子.

当我尝试时,我得到一个零大小的视图.

在界面构建器中,我创建一个UIView并添加一个UISearchBar和一个UIButton作为这样的补贴

[seachBar] – [按钮]

它变为零宽度.

有谁知道如何使用这个新功能?

最佳答案 我会回答我自己的问题.

基本上,自动布局的工作方式与您期望的一样.然而,问题是每个元素要么需要约束来指定其宽度,要么需要指定其内在大小.例如,如果您使用uilabel替换搜索栏,则自定义标题视图将正确适合标签.搜索栏显然没有内在大小,因此需要控制其增长.

我在搜索栏后面放了一个uilabel,并将其限制在搜索栏的顶部,底部,前导和后缘.我给了uilabel很多文本并设置它以便在文本太多时会截断.

当我运行应用程序时,搜索栏的宽度非为零,并且更改为横向和横向将缩小并根据需要拉伸搜索栏.按钮仍会折叠到0宽度,但通过将压缩阻力设置为高于uilabel,可以轻松修复.

我知道,为此目的添加虚拟UILabel是一种破解.我愿意接受任何替代方案……

这是一个example project.

点赞