iOS個(gè)人熱點(diǎn)下啟動(dòng)圖片顯示Bug

最近在做個(gè)人熱點(diǎn)適配,發(fā)現(xiàn)在個(gè)人熱點(diǎn)連接狀態(tài)下如果導(dǎo)航欄不隱藏,App啟動(dòng)圖會(huì)有一個(gè)Bug,看了看現(xiàn)在流行的應(yīng)用,發(fā)現(xiàn)好多都有這個(gè)問(wèn)題,雖然只是一閃而過(guò)用戶很可能都發(fā)現(xiàn)不了,但是我感覺(jué)還是處理一下比較好。大家還是看看效果吧。

淘寶

京東

餓了么

簡(jiǎn)書

從這幾個(gè)應(yīng)用來(lái)看啟動(dòng)圖的中心像是被折疊起來(lái)了,這個(gè)算是蘋果的Bug。解決這個(gè)問(wèn)題只讓App啟動(dòng)時(shí)隱藏狀態(tài)欄就行了。

隱藏狀態(tài)欄

但是這樣還是有一個(gè)問(wèn)題,拿滴滴出行舉個(gè)例子

滴滴出行1.png
滴滴出行2.png

滴滴出行在沒(méi)有廣告界面的時(shí)候,啟動(dòng)應(yīng)用會(huì)從圖1的狀態(tài)變?yōu)閳D2的狀態(tài),時(shí)間很短,但是還是感覺(jué)用戶體驗(yàn)不好。以下是我個(gè)人的解決辦法。

首先我們需要獲取啟動(dòng)圖片,給UIImage添加一個(gè)分類方法

/*
 * 獲取App啟動(dòng)圖片
 */
+ (instancetype)getLauchImage {
    NSString *launchImage = nil;
    NSArray *imageDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    for (NSDictionary * dict in imageDict) {
        launchImage = dict[@"UILaunchImageName"];
    }
    return [UIImage imageNamed:launchImage];
}

然后在viewDidAppear中present一個(gè)控制器,_isHotSpot是防止死循環(huán)的,并且是在熱點(diǎn)連接的狀態(tài)下才present(實(shí)際上是通過(guò)用啟動(dòng)圖片擋住這種從圖1轉(zhuǎn)換成圖2的視覺(jué)效果,說(shuō)白了就是欺騙用戶,哈哈)。

/*
 *  只能在viewDidAppear執(zhí)行才有效果
 */
- (void)viewDidAppear:(BOOL)animated {
    if (_isHotSpot == NO && [UIApplication sharedApplication].statusBarFrame.size.height == 40) {
        BWV *vc = [[BWV alloc] init];
        [self presentViewController:vc animated:NO completion:^{
            UIImageView *imgview = [[UIImageView alloc] initWithFrame:self.view.bounds];
            imgview.image = [UIImage getLauchImage];
            [vc.view addSubview:imgview];
            [vc.view bringSubviewToFront:imgview];
        }];
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                    [vc dismissViewControllerAnimated:NO completion:nil];
                });
                
            });
        _isHotSpot = YES;
        
    }
}

如果你有更好的辦法一定要分享給大家哦!

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

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

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