iOS獲取開機屏

iOS主流開機屏有2種:LaunchImage、LaunchScreen

LaunchImage

通過讀取info.plist文件,根據(jù)設(shè)備尺寸獲取啟動頁圖片

(UIImage *) getLaunchImage {
    CGSize viewSize = [UIScreen mainScreen].bounds.size;
    NSString *viewOrientation = @"Portrait"; //豎屏,橫屏為Landscape
    NSString *launchName = nil;
    
    NSArray *imageDic = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    
    for (NSDictionary *dict in imageDic) {
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        if (CGSizeEqualToSize(imageSize, viewSize) &&
            [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]]) 
        {
            launchName = dict[@"UILaunchImageName"];
            break;
        }
    }

    return [UIImage imageNamed:launchName];
}

LaunchScreen

為保證蘋果設(shè)備體驗一致,2020年蘋果要求開機屏必須使用LaunchScreen。LaunchScreen是Storyboard方式。

通過實例化Storyboard,找到開機屏圖片。

Storyboard實例化,首先需要設(shè)置ViewController的Storyboard ID


image.png
- (UIImageView *)getLaunchImage {
    UIImageView *launchView;
    
    UIViewController *viewController = [[UIStoryboard storyboardWithName:@"Launch Screen" bundle:nil] instantiateViewControllerWithIdentifier:@"Launch Screen"];
    if (viewController && viewController.view) {
        for (UIView *view in viewController.view.subviews) {
            if ([view isKindOfClass:[UIImageView class]]) {
                // storyboard的imageview設(shè)置了束縛,不能直接使用,必須新建imageview
                UIImage *image = [(UIImageView *)view image];
                launchView = [[UIImageView alloc] initWithImage:image];
                launchView.frame = [UIScreen mainScreen].bounds;
                launchView.contentMode = UIViewContentModeScaleAspectFill;

                break;
            }
        }
    }
    
    return launchView;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容