所以我想在导航控制器的导航栏中添加 Headers 下的“副 Headers ” .
到目前为止,我查找的大部分内容都要我使用CGRect . 我不知道那是什么,这听起来像是想要我创建一个全新的视图而不是我想做的事情 .
我的问题是,有一种点方法可以轻松添加字幕视图吗?
我发现的最接近的事情是在堆栈溢出时发布,这是链接:
Create a subtitle in navigationbar
显然去年这有效,但现在我得到错误,它在我的viewDidLoad ...
我试过这个:
self.navigationController?.navigationItem.prompt =“Subtitle Here”
这是唯一不会显示任何错误但仍然不起作用的东西 . 它实际上什么都不做 . 在运行时至少没有任何可见的东西 .
另一方面,swift是首选 . 谢谢!
9 回答
虽然有一个解决方案,但它有一些已知的问题
解决方案是编写这样的函数
在
viewDidLoad
中使用此功能进行自定义导航 Headers 视图唯一已知的问题是如果字幕变得非常大,则发生错位 .
最终结果
资料来源:https://gist.github.com/nazywamsiepawel/0166e8a71d74e96c7898
这是我的版本在扩展上使用堆栈视图 .
非常感谢您的回答! @RajanMaheshwari
除了使用widthDiff创建的if语句之外,您的编码工作正常 .
我调整了一点,一切顺利 .
再次感谢您的回复!
@ iosjillian的Swift 4扩展程序运行良好,增加了一点来纪念栏的外观和用户字体首选项:
如果有人在寻找上述解决方案的
Objective-C
代码:谢谢@RajanMaheshwari的答案
如果有任何人在副 Headers 文本长于 Headers 文本时出现 Headers 未对齐的问题,我将以下代码添加到Rajan的答案中,正好在下面实例化subtitleLabel的地方:
希望这可以帮助遇到与我相同问题的人
斯威夫特4:
使用:
另一种解决方案,仅使用一个标签和
NSAttributedString
来区分 Headers 和副 Headers (具有不同的字体大小,重量,颜色等) . 消除了不同标签对齐的问题 .自定义titleView部分基于https://stackoverflow.com/a/34298491/3918865
我真的很喜欢@ user2325031的答案,但发现不需要调整标签大小以适应和设置框架 . 我还根据@ GerardoMR的建议将stackView的对齐设置为.center .