iOS8調(diào)用相機(jī)報(bào)警告Snapshotting a view的解決方法
因?yàn)槲疫@也報(bào)了這個(gè)警告,所以把解決方法寫到這個(gè)地方看是否其他人用的到,具體解決方法:
錯(cuò)誤代碼:Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.
問(wèn)題分析:iOS8在調(diào)用系統(tǒng)相機(jī)拍照時(shí),會(huì)有一兩秒的停頓,然后再?gòu)棾鯱IImagePickConroller,IOS7是沒(méi)有這個(gè)問(wèn)題的,在百度找了無(wú)數(shù)遍都沒(méi)能解決這個(gè)問(wèn)題,有說(shuō)要將imagePickController設(shè)置為全局變量,有說(shuō)要延時(shí)0.5秒再presentViewController的,各顯神通,但很遺憾的都沒(méi)能解決這個(gè)問(wèn)題,今天特意單獨(dú)寫個(gè)Demo來(lái)研究此問(wèn)題,終于取得了突破性的進(jìn)展!
其實(shí)根本原因不在于系統(tǒng)拍照控制器上面,而是執(zhí)行presentViewController這個(gè)動(dòng)作本身!我們可以查看下UIViewController這個(gè)類,他有一個(gè)屬性:
@property(nonatomic,assign) UIModalPresentationStyle modalPresentationStyle NS_AVAILABLE_IOS(3_2);
這是一個(gè)枚舉值,在iOS7的SDK中,定義如下:
typedefNS_ENUM(NSInteger,
UIModalPresentationStyle) {
UIModalPresentationFullScreen
= 0,
#if
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_3_2
UIModalPresentationPageSheet,
UIModalPresentationFormSheet,
UIModalPresentationCurrentContext,
#endif
#if
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_7_0
UIModalPresentationCustom,
UIModalPresentationNone
= -1,
#endif
};
在iOS8的SDK中定義如下:
typedefNS_ENUM(NSInteger,
UIModalPresentationStyle) {
UIModalPresentationFullScreen
= 0,
UIModalPresentationPageSheetNS_ENUM_AVAILABLE_IOS(3_2),
UIModalPresentationFormSheetNS_ENUM_AVAILABLE_IOS(3_2),
UIModalPresentationCurrentContextNS_ENUM_AVAILABLE_IOS(3_2),
UIModalPresentationCustomNS_ENUM_AVAILABLE_IOS(7_0),
UIModalPresentationOverFullScreenNS_ENUM_AVAILABLE_IOS(8_0),
UIModalPresentationOverCurrentContextNS_ENUM_AVAILABLE_IOS(8_0),
UIModalPresentationPopoverNS_ENUM_AVAILABLE_IOS(8_0),
UIModalPresentationNoneNS_ENUM_AVAILABLE_IOS(7_0)
= -1,
};
解決問(wèn)題的關(guān)鍵部分來(lái)了,IOS8多了一個(gè)樣式UIModalPresentationOverCurrentContext,IOS8中presentViewController時(shí)請(qǐng)將控制器的modalPresentationStyle設(shè)置為UIModalPresentationOverCurrentContext,問(wèn)題解決?。?/strong>
if([[[UIDevice
currentDevice] systemVersion] floatValue]>=8.0) {
self.modalPresentationStyle=UIModalPresentationOverCurrentContext;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- iOS開(kāi)發(fā)技巧之自定義相機(jī)
- iOS自定義相機(jī)實(shí)現(xiàn)拍照、錄制視頻
- iOS框架AVFoundation實(shí)現(xiàn)相機(jī)拍照、錄制視頻
- iOS仿微信相機(jī)拍照、視頻錄制功能
- IOS打開(kāi)照相機(jī)與本地相冊(cè)選擇圖片實(shí)例詳解
- iOS開(kāi)發(fā)-自定義相機(jī)實(shí)例(仿微信)
- iOS開(kāi)發(fā)-調(diào)用系統(tǒng)相機(jī)和相冊(cè)獲取照片示例
- IOS10 相冊(cè)相機(jī)閃退bug解決辦法
- iOS 10 使用相機(jī)相簿閃退的bug修正方法
- IOS打開(kāi)系統(tǒng)相機(jī)的閃光燈
- iOS 10自定義相機(jī)功能
相關(guān)文章
iOS購(gòu)物分類模塊的實(shí)現(xiàn)方案
這篇文章主要為大家詳細(xì)介紹了iOS購(gòu)物分類模塊的實(shí)現(xiàn)方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02
ios12中遇到的帶input彈窗的錯(cuò)位問(wèn)題的解決方法
這篇文章主要介紹了ios12中遇到的帶input彈窗的錯(cuò)位問(wèn)題的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
關(guān)于ios配置微信config出現(xiàn)驗(yàn)簽失敗的問(wèn)題解決
這篇文章主要介紹了關(guān)于ios配置微信config出現(xiàn)驗(yàn)簽失敗的問(wèn)題解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
IOS 開(kāi)發(fā)之網(wǎng)絡(luò)圖片輪播圖的實(shí)現(xiàn)
這篇文章主要介紹了IOS 開(kāi)發(fā)之網(wǎng)絡(luò)圖片輪播圖的實(shí)現(xiàn)的相關(guān)資料,希望通過(guò)此文大家能夠掌握輪播圖的實(shí)現(xiàn),需要的朋友可以參考下2017-09-09
Flutter?GetPageRoute實(shí)現(xiàn)嵌套導(dǎo)航學(xué)習(xí)
這篇文章主要為大家介紹了Flutter?GetPageRoute實(shí)現(xiàn)嵌套導(dǎo)航的示例學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

