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

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

它发生在7:53左右

wwdc-pic

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

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

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

[seachBar] – [按钮]

它变为零宽度.

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

解决方法

我会回答我自己的问题.

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

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

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

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

这是一个example project.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...