我有一个要求,我必须使用带有红色大标题的UINavigationBar
。
目前,我有以下代码:
func prepareNavigationController() {
let navController = UINavigationController(rootViewController: self)
navController.navigationBar.prefersLargeTitles = true
navigationItem.searchController = UISearchController(searchResultsController: nil)
navigationItem.hidesSearchBarWhenScrolling = false
navController.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor.rawValue: UIColor.red]
}
但实际上并没有将标题标签染成红色。结果如下:
但是将prefersLargeTitles
更改为false做了正确的事情,我的标题是红色的。navController.navigationBar.prefersLargeTitles = false
我不完全确定这是一个bug,因为在写这篇文章的时候,我们仍然在第一个测试版中,或者如果这是故意的行为,主要是因为我还没有任何苹果的应用程序之前的颜色大标题。有没有什么方法可以让大标题有任何颜色我想要的?
6条答案
按热度按时间balp4ylt1#
有一个新的UINavigationBar属性“largeTitleTextAttribute”可以帮助解决这个问题。
largeTitleTextAttribute
下面是一个可以添加到视图控制器viewDidLoad方法中的示例代码
下面是一个没有设置largeTitleTextAttributes的示例代码和屏幕截图,但是barStyle设置为.black
下面是一个没有设置largeTitleTextAttributes的屏幕截图,但是barStyle设置为.default
nwlls2ji2#
在iOS 13中,您执行此操作的方式发生了变化,您现在像这样使用
UINavigationBarAppearance
类...41zrol4v3#
不确定这是否是beta 1和2中的一个bug,但这里有一种设置颜色的方法。这是一个有点“黑客”的解决方案,但在Apple修复这个问题之前应该可以工作。在Objective-C和Swift版本中,这段代码都在
viewDidAppear:
方法中。目标C:
斯威夫特:
zxlwwiss4#
如果使用情节提要,只需在导航栏属性检查器中更改“大标题文本属性”标题颜色:
8e2ybdfx5#
下面是使用大标题并将大小标题的文本颜色设置为白色的工作代码,无论是在iOS11+还是在旧的iOS版本上。
p3rjfoxz6#
在Xcode 14,Swift 5和iOS 15上,您可以通过脚本属性检查器更改大标题颜色。默认颜色为黑色。您需要选择导航栏,然后选择属性检查器。转到滚动边缘栏按钮外观部分,找到“首选大标题”复选框:
然后,您需要将大标题设置为自定义,并将标题颜色设置为您想要的任何颜色(例如:白色),如红色箭头所示。