LaunchImage和LaunchScreen.xib混用出现的坑

Xcode6和iOS 8以后,苹果给开发者新添加了一种配置启动图的方式LaunchScreen.xib

笔者觉得,这种方式的优势在于无需做多张启动图进行适配,LaunchImage需要美工做多张图,而LaunchScreen.xib可以自适应布局,做一张图就够了。

不过,笔者建议为了更好的适配,免除图片拉伸造成的不好的效果,可以在Images.xcassets,添加一个命为Default的图片集But,这种方式有个巨大的坑啊楼主现在还没爬上来~

由于笔者接手的是别人的项目,启动图也没有更换过,一直没有动过这块,也没有太在意。最近由于有更换启动图的需求,开始着手搞启动图这块的内容。原来外包用的是LaunchScreen.xib这种方式,在改这一块的时候,把这两种方式都选了~然后,问题出现了

启动图选择方式
关于启动图黑屏

测试的时候发现,有的时候处出现黑屏的现象,百度了一下,有人说好像是两种方式混用的结果。原来,iOS8以后的系统默认LaunchScreen.xib方式,之前的系统选择LaunchImage方式。然后我们就选择了LaunchImage这种更加稳定可靠的方式。启动图黑屏的问题果然不存在了

安装过旧版本的App启动图无法更换

由于笔者的手机频繁的删除应用,没有发现这个问题。产品经理在安装测试版的App后出现启动图没有更换的问题~删了应用重装也不行
So,问题来了~What happend?

笔者开始了漫长的测试~~~

  • 先用 LaunchScreen.xib方式添加启动图A,运行工程,App启动图为A,然后更换启动图为B
  • 启动图添加方式更换为LaunchImage方式,运行工程,App启动图为A
  • 启动图添加方式更换为LaunchImage方式,删掉App,运行工程,App启动图为B
  • 启动图添加方式不更换,运行工程,App启动图为A
  • 启动图添加方式不更换,删掉App,运行工程,APP启动图为A
  • 启动图添加方式不更换,重启手机,运行工程,APP启动图为A
  • 启动图添加方式不更换,删掉App,重启手机,运行工程,APP启动图为B
  • 先用 LaunchImage方式添加启动图A,运行工程,App启动图为A,然后更换启动图为B
  • 启动图添加方式不更换,运行工程,App启动图为B
  • 启动图添加方式更换为 LaunchScreen.xib,运行工程,App启动图为B
  • LaunchImage与LaunchScreen.xib混用没有测试,因为在iOS8系统以后,默认使用LaunchScreen.xib,效果和第一种是一样的,感兴趣的读者可以测试一下
为什么用 LaunchScreen.xib方式添加启动图会出现上面的效果?笔者做了一些小小的测试

开始笔者觉得,可能是使用xib方式,系统会在App沙盒保存一份启动图,就下载一个软件iFunBox

安装好,点击应用

屏幕快照 2016-03-17 下午5.43.43.png

这里我们可以看到,平时我们在程序里操作的几个文件夹


屏幕快照 2016-03-17 下午5.44.02.png

点击Library


屏幕快照 2016-03-17 下午5.44.13.png

点击Caches


屏幕快照 2016-03-17 下午5.44.23.png

点击Snapshots,


屏幕快照 2016-03-17 下午5.44.35.png

果然找到了启动图


屏幕快照 2016-03-17 下午5.44.49.png

而LaunchImage模式,不会生成这张图片

笔者原本以为,这张图就是App每次启动时要拿的图。在LaunchScreen.xib模式下,就删掉了这张图,重新运行工程。然而,笔者期待的景象并未发生,即便更换成启动图B,App的启动图仍然为A,同时在这个文件夹下,启动图A又出现了。so,这张图并不是App启动时调用的。其实,出现启动图添加方式不更换,删掉App,运行工程,APP启动图为A这种结果时,就证明笔者的思路是错的,因为此时这个文件夹已经不存在了,说明App启动后启动图在App沙盒之外进行了保存,即保存在了iOS系统本身的某些缓存文件下。

启动图添加方式不更换,删掉App,重启手机,运行工程,APP启动图为B,则证明,iOS系统缓存的这些文件,只有重启手机才能删掉,不重启的话,这些信息在App重新安装的时候,依然可用,具体保存在哪,笔者真心没找到~

所以,LaunchScreen.xib这种添加启动图的方式,建议读者不要使用,不如读者如果解决这种问题建议通知笔者跪谢

总结:在LaunchScreen.xib模式下,Snapshots文件夹下的这张图片每次在App启动的时候都会更新。因为这张图片是系统对启动图进行截屏得到的,但是App启动时调用的那张图片是在App首次使用LaunchScreen.xib模式时用的那张图片,系统对这张图片进行了保存,只要这张图片存在,无论采用什么模式,都会调用这张图片。而能够删除这张图片的唯一方式,就是删掉程序,重启手机。


2016-03-20更新


问题解决了:笔者将LaunchScreen.xib更换成了LaunchScreen.storyboard就能进行更换了。而且LaunchScreen.storyboard创建的启动图是可以随时更换的。可能是因为Xcode7以后,苹果主推LaunchScreen.storyboard而取代了LaunchScreen.xib。最重要的是,一定要记得更换图片的名字,千万不要使用一样的名字根,否则还是更换不了。我原来使用的都是Default.png,更换了就好了。

iOS开发时如何使用 Launch Screen Storyboard

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容