美文网首页
关于启动页面的一点思考

关于启动页面的一点思考

作者: championfu | 来源:发表于2020-08-29 00:28 被阅读0次

制作炫酷的启动界面一直是产品的追求,但很遗憾的是iOS不能完全做到这一点,我所已知的最好的解决方案是在didFinishLaunch方法里获取启动页面的图片作为动画的第一帧形成连贯的动画,但动态的更换第一帧的App我是没有见到的。

那么能不能更换动态的启动页面呢,我谷歌了一些国外开发者论坛,答案依然是没有找到。这时我想到hook。runtime里面方法交换能否帮助到我呢,我使用的是LaunchScreen.storyboad作为启动页,里面设置了全屏的UIImageView。

1、先尝试使用自定义UIImageView的子类,结果是编译报错,Apple不允许在启动storyboard中使用自定义UI类。然后我创建UIImageView的分类,并重写+ (void)load方法。
结论是:hook不到启动图,我先后hook了initWithImage,setImage:都没有效果。
2、尝试hookUIImage,先后hook了imageNamed:,imageNamed:inBundle:等方法,依然没有效果,最后不死心的我,hookUIStoryboard的方法,很显然都没有效果,难道storyboard的底层并没有使用runtime的消息机制。很显然不是,使用其他的storyboard hook都有捕捉到,到底哪里出问题了呢。
3、我尝试在load方法处设置断点,神奇的出现了。启动图先出现,然后再进入断点,这令我有些不知所措,启动图竟然比load都早,难道他比runtime都早吗。这显然runtime是管不了它了。

结论:launchScreen.board的启动时机非常早,早于load,更不用说main,didFinishLaunch了,它的作用是app初始化时诸如:dyld链接,镜像加载,runtime的运行等一系列耗时操作的遮罩美化,它运行的太早了,具体是在什么时机,水平有限,我也不得而知。所以想要通过代码动态的修改,有点痴人说梦。但有一点或许可以做到,使用fishhook或许可以做到,但需要更多的底层的api。回过头来想,为什么launchScreen不能使用自定义类,而且创建Storyboard文件时会有普通storyboard和launchScreen两个选项,它确实不是普通的storyboard。最后补充一点,apple对启动图做了缓存处理,在第一次启动后,会在splashBoard这个目录缓存一张启动图,如果出现更换启动图没有效果,可以尝试清除这个目录的图片,具体怎么操作,百度一下即可,我有点懒,就不贴代码了。

相关文章

  • 关于启动页面的一点思考

    制作炫酷的启动界面一直是产品的追求,但很遗憾的是iOS不能完全做到这一点,我所已知的最好的解决方案是在didFin...

  • ios 启动添加广告页

    由于ios启动页是有苹果的规范的,所以动态的修改启动页可能会有被拒的风险。关于这一点我没试过,如果想做是可以做的,...

  • 关于iOS启动页

    最近设置启动页, 下面总结一下Launch Image的设置方法如下 新建一个Launch Image文件 需要设...

  • 关于iOS应用启动页与引导页的显示切换

    我们在移动应用开发中经常会应用到启动页与引导页,为了实现启动页与引导页,以及应用功能界面的无缝连接,今天我...

  • 产品交互自查笔记#03启动页、引导页、登录页

    前言:上一篇讲了页面的打开方式,里面提到当首次打开应用时,会出现的启动页、引导页或登录页,当然启动页和登录页不一定...

  • [系列]APP设计之二:引导页

    上次我写了自己关于启动页的一些观察和想法。这次,来谈谈引导页,主要是app启动后展现的引导页,也有人称为前置引导页...

  • 关于工作方面的一点思考

    关于工作方面的一点思考 同事甲来我办公室说她工作上的事情,并就她发现的问题做了详细地汇报。我也发现了她所说的问题,...

  • 关于阅读方面的一点思考

    本周开始了第七单元的教学,第七单元的语文要素之一是“了解课文是从哪几个方面把事物写清楚的”,我突然意识到每一单元的...

  • 关于点,线,面的一点思考

    拖欠朋友的2018年总结到现在还没写完,确实是恬不知耻了。但是其实主要是对人生两次重大选择的回看和反思。可以提炼与...

  • APP引导页、启动页和闪屏页概念解析

    想必产品同学对这3个词肯定不陌生,首先我们要明确一点启动页和闪屏页其实很相似,所以概况为引导页和启动页2种类型。 ...

网友评论

      本文标题:关于启动页面的一点思考

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