美文网首页
iOS 将storyboard转为图片

iOS 将storyboard转为图片

作者: 宥落 | 来源:发表于2022-10-13 09:39 被阅读0次

    一、背景

    目前launchimages已被苹果完全废弃,都使用LaunchScreen.storyboard作为启动图,其目的就是为了启动图能更好的适配不同尺寸屏幕的手机。为了给用户更好的启动体验,我们再也不能单纯的用一张图作为启动图。

    目前可行的做法大致有两种(有更多的,欢迎推荐):

    • 1、先根据屏幕尺寸设计不同的启动图,开发再根据屏幕尺寸创建多个LaunchScreen.storyboard

    • 2、把启动图作为一个页面开发,分成不同的元素。

    二、需求 & 场景

    以启动图为背景图,实现某些需求的场景:

    • 1、首次打开APP,需要以启动图为背景,显示同意隐私政策的弹窗。

    • 2、每次打开APP后,在启动图将要结束时,以启动图为背景,展示启动图广告。要从启动图无缝切换到广告图。

    • 3、从启动图切换到启动轮播图。很多APP做启动之后的轮播介绍图,如果轮播图的资源是本地图片还好;但我们的需求启动轮播图要根据接口返回显示,这样从接口请求到图片加载完成,中间的空荡期,就会显得很突兀,产品上也要求从启动图无缝切换到轮播图。

    以上情况,我就需要以启动图为图片,或作为背景或作为过渡页或作为placeholderImage

    三、解决方法

    具体做法就是把LaunchScreen.storyboard转为图片,参考文章(原先的文章不是Markdown模式,现在换一下):

    /*
     获取启动图
     */
    - (UIImage *)getLaunchScreensImage{
        CGSize size = CGSizeMake([[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height);
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"LaunchScreen" bundle:nil];
        UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LaunchScreensId"];
        vc.view.size = size;
    
        UIGraphicsBeginImageContextWithOptions(size, YES, 0.0f);
        [vc.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return image;
    }
    
    

    之后就可以拿着这张图片做相关的需求!

    相关文章

      网友评论

          本文标题:iOS 将storyboard转为图片

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