-
2017-9-10 更新:
之前在Stack Overflow
上对此问题进行了提问,但是迄今为止没有满意答案。如今我本人也倾向于这是UIkit
或Xcode
(Xcode 9正式版本,此问题还在)的缺陷。仍然在等待Apple的官方回复,或许石层大海,永远没有回复。
iOS 11 issues with navigationBar prefersLargeTitles
最近还发现了一个在storyboard
里设置imageView
的 tintColor
不起作用,但是使用code设置却正常,我个人觉得也可能是Xcode
的缺陷。
tintColor of UIImageView doesn't work with storyboard,but work with code
-
2017-9-14 更新:
等待了2周,终于等到Apple的回复:
Apple回复.png传2个工程文件给Apple,继续等待……
-
2017-9-22更新:
关于imageView tintColor
问题,Apple今天给出了回复:已知缺陷,还没有修复:
既然已有其他人提了bug,为何Apple没有修复?继续等第1个问题的进一步回复。
最近我自己的MacBook Air出现了输入密码后卡在读取进度条,再之后黑屏关机问题,无奈之下重装系统,比较悲剧的是之前写的一些Demo都没有备份或者上传至gitHub
。在此提醒大家,随时备份。
今天想写的主题是关于iOS 11里新出的功能prefersLargeTitles
,即设置navigationBar
上的title为大字体,效果如下(重点看navigationBar):
个人觉得既然是新推出来的东西,还是得运用下,开发环境:
Swift 4.0,Xcode 9 ,iOS 11
。为了便于说明存在的bug,我自己写了一个demo:一个
viewController
视图上包含一个 imageView
(做背景图)和tableView
。storybord 里subview层次
原本目标是想要做到类似效果,代码如下:
self.title = "OMNI Remotes"
//tableView背景透明
tableView.backgroundColor = .clear
//navBar 透明
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
//去除阴影线
navigationController?.navigationBar.shadowImage = UIImage()
//设置大字体
navigationController?.navigationBar.prefersLargeTitles = true
//滑动时隐藏searchBar
navigationItem.hidesSearchBarWhenScrolling = true
//将searchController赋值给navigationItem
let sc = UISearchController(searchResultsController: nil)
navigationItem.searchController = sc
代码非常简单,不做过多解释,直接Run工程,发现了问题。此前,我一直怀疑是不是自己的项目有问题,但在这个简单到不能再简单的demo里还是出现了一模一样的问题,我就高度怀疑是Unkit bug。
- issue one:虽然设置去掉阴影线,但是实际
navigationBar
的阴影线并没有去掉 - issue two:滑动
tableView
时无法隐藏searchBar
且不能从largeTitles状态回到正常大小状态
实际效果.gif
Google了很久也没有发现相关问题,但在苹果开发者论坛上发现有几个开发者遇到了issue two ,但是issue1貌似只有我遇到了。
这是个神奇的世界,当我删掉imageView视图后,上述issue two问题竟然消失了(仔细看图,你会发现issue one还在哦)天呐,这是个Bug吗?Anyway,先上报给Apple,期待他们的回复。
删除imageView后效果
最后我想说的是,从升级至Xcode9(beta2 ->beta6->正式版),各种莫名其妙问题,最为严重的是在我的Air上运行时经常莫名其妙导致我笔记本屏幕闪烁,有时候显示CPU使用105%,然后自动重启。不运行Xcode 9
时一点毛病都没有。
网友评论