欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS8調(diào)用相機報警告Snapshotting a view的解決方法

 更新時間:2016年11月04日 15:00:34   作者:沸騰的淚水05314  
這篇文章主要介紹了iOS8調(diào)用相機報警告Snapshotting a view……的解決方法 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下

因為我這也報了這個警告,所以把解決方法寫到這個地方看是否其他人用的到,具體解決方法:

錯誤代碼: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.

問題分析:iOS8在調(diào)用系統(tǒng)相機拍照時,會有一兩秒的停頓,然后再彈出UIImagePickConroller,IOS7是沒有這個問題的,在百度找了無數(shù)遍都沒能解決這個問題,有說要將imagePickController設(shè)置為全局變量,有說要延時0.5秒再presentViewController的,各顯神通,但很遺憾的都沒能解決這個問題,今天特意單獨寫個Demo來研究此問題,終于取得了突破性的進展!

其實根本原因不在于系統(tǒng)拍照控制器上面,而是執(zhí)行presentViewController這個動作本身!我們可以查看下UIViewController這個類,他有一個屬性:

@property(nonatomic,assign)
 UIModalPresentationStyle modalPresentationStyle NS_AVAILABLE_IOS(3_2);

這是一個枚舉值,在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,     

};

解決問題的關(guān)鍵部分來了,IOS8多了一個樣式UIModalPresentationOverCurrentContext,IOS8中presentViewController時請將控制器的modalPresentationStyle設(shè)置為UIModalPresentationOverCurrentContext,問題解決?。?/strong>

if([[[UIDevice
 currentDevice] systemVersion] floatValue]>=8.0) {

  self.modalPresentationStyle=UIModalPresentationOverCurrentContext;

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論