美文网首页iOS 11iOS学习iOS开发
iOS 11 设置PrefersLargeTitles后出现的异

iOS 11 设置PrefersLargeTitles后出现的异

作者: 东东隆东抢 | 来源:发表于2017-09-01 18:42 被阅读2398次
  • 2017-9-10 更新:

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

最近还发现了一个在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今天给出了回复:已知缺陷,还没有修复:

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
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时一点毛病都没有。

相关文章

网友评论

  • Hoony胡:iOS 12 Swift 写出来的 可以把NavigationBar缩回去 但是OC写的就不行 emmmmmm 代码是一样的
    Hoony胡:我说的缩回去 是指 行数不够的时候往上拉回去 补充下
  • 鬼丶白:你好,我设置了导航栏背景图片大标题就滑动不了了 怎么解决啊
    东东隆东抢:@soime 我暂时没遇到过,你可以网上Google看看,stack overflow上也可以看看问问。
    鬼丶白:@东东隆东抢 标题不能滑动
    东东隆东抢:@soime 标题不能滑动还是?
  • 孤独感爆棚:大标题的颜色貌似还不能改。。。。
    孤独感爆棚:@东东隆东抢 应该是这样的navigationController?.navigationBar.largeTitleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
    孤独感爆棚:@东东隆东抢 会报错吧
    东东隆东抢:我记得这个是可以修改:` navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor:.blue]` 试试这段代码。
  • rain__bow__:问下,issue two问题解决了吗?
    rain__bow__:@东东隆东抢 嗯嗯 用了代码没问题
    东东隆东抢:没有吧 建议不要用storyboard,使用Xcode 9 各种莫名其妙问题

本文标题:iOS 11 设置PrefersLargeTitles后出现的异

本文链接:https://www.haomeiwen.com/subject/daykjxtx.html