iOS 11 设置PrefersLargeTitles后出现的异常

  • 2017-9-10 更新:

之前在Stack Overflow上对此问题iOS 11 issues with navigationBar prefersLargeTitles进行了提问,但是迄今为止没有满意答案。如今我本人也倾向于这是UIkitXcode(Xcode 9正式版本,此问题还在)的缺陷。仍然在等待Apple的官方回复,或许石层大海,永远没有回复。

最近还发现了一个在storyboard里设置imageViewtintColor不起作用,但是使用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今天给出了回复:已知缺陷,还没有修复:

iOS 11 设置PrefersLargeTitles后出现的异常_第1张图片
Apple 关于storyboard里使用tintColor问题回复.png

既然已有其他人提了bug,为何Apple没有修复?继续等第1个问题的进一步回复。


最近我自己的MacBook Air出现了输入密码后卡在读取进度条,再之后黑屏关机问题,无奈之下重装系统,比较悲剧的是之前写的一些Demo都没有备份或者上传至gitHub。在此提醒大家,随时备份。
今天想写的主题是关于iOS 11里新出的功能prefersLargeTitles,即设置navigationBar上的title为大字体,效果如下(重点看navigationBar):

系统App效果.gif

个人觉得既然是新推出来的东西,还是得运用下,开发环境: Swift 4.0,Xcode 9 ,iOS 11
为了便于说明存在的bug,我自己写了一个demo:一个 viewController视图上包含一个 imageView(做背景图)和 tableView
iOS 11 设置PrefersLargeTitles后出现的异常_第2张图片
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,期待他们的回复。
    iOS 11 设置PrefersLargeTitles后出现的异常_第3张图片
    删除imageView后效果

    最后我想说的是,从升级至Xcode9(beta2 ->beta6->正式版),各种莫名其妙问题,最为严重的是在我的Air上运行时经常莫名其妙导致我笔记本屏幕闪烁,有时候显示CPU使用105%,然后自动重启。不运行Xcode 9时一点毛病都没有。

你可能感兴趣的:(iOS 11 设置PrefersLargeTitles后出现的异常)