iOS14更新適配

悄然而來的iOS14,沒有羅列太多.在這里我們稍微了解一下需要做的更新.

適配1: Cell點(diǎn)擊無效

在14上可能出現(xiàn)點(diǎn)擊cell上的視圖無法響應(yīng)的情況.
原因:iOS14更改Cell視圖布局.將contentView放在最上層,如果將視圖加載在cell上,將會出現(xiàn)contentView遮罩,導(dǎo)致事件無法響應(yīng).是在此前關(guān)于 contentView 的聲明注釋中,官方已經(jīng)明確建議開發(fā)者將 customView 放在 contentView 上,使 contentView 作為 UITableViewCell 默認(rèn)的 fatherView。

解決辦法:
1、可以將cell子視圖加載在contentView上(提倡)
2、將contentView設(shè)置到最底層 self.sendSubviewToBack(self.contentView)

適配2:UIDatePicker 更新 UI 樣式

iOS 14 中,UIDatePicker UI樣式更新了

適配3:相冊權(quán)限

iOS14 新增了“Limited Photo Library Access” 模式,在授權(quán)彈窗中增加了 Select Photo 選項。用戶可以在 App 請求調(diào)用相冊時選擇部分照片讓 App 讀取。從 App 的視?來看,你的相冊里就只有這幾張照片,App 無法得知其它照片的存在。
重點(diǎn)!!!:權(quán)限提示框會在每次冷啟動后打開相冊時重新彈出,可以在 info.plist 中設(shè)置 PHPhotoLibraryPreventAutomaticLimitedAccessAlert 選項為 YES ,關(guān)閉提示

適配4:地理位置

新增了 精確定位 和 模糊定位 的概念,用戶可以手動選擇,模糊定位的誤差約 500m ??梢愿鶕?jù)實(shí)際功能判斷是否可以接受用戶選擇模糊定位。
如果功能強(qiáng)依賴精確定位,可以在需要的時候調(diào)用 [CALocationMnanger requestTemporaryFullAccuracyAuthorizationWithPurposeKey:] 單獨(dú)請求一次精確定位,用戶可以選擇拒絕授權(quán)。所需參數(shù) purposeKey 需要在 info.plist 中設(shè)置 NSLocationTemporaryUsageDescriptionDictionary 字典,key 為 purposeKey , value 為對應(yīng)的話述

權(quán)限部分可以參考

5:模擬器運(yùn)行提示錯誤

ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/AFNetworking'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/FMDB'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/IQKeyboardManager'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/JQCollectionViewAlignLayout'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/MBProgressHUD'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/MJRefresh'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/Masonry'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/SDWebImage'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/TouchJSON'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/YBImageBrowser'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/YYImage'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/YYModel'
ld: warning: directory not found for option '-L/Users/conan/Library/Developer/Xcode/DerivedData/DaYi-cuupfsrvoecbukceokqclslullyu/Build/Products/Debug-iphonesimulator/YYText'
ld: warning: directory not found for option '-F/Users/conan/Documents/logistics-ios/DaYi/Lib'
ld: warning: directory not found for option '-F/Users/conan/Documents/logistics-ios/DaYi/Tools/Carmal/General/SLAnimateImageView'
ld: warning: directory not found for option '-F/Users/conan/Documents/logistics-ios/DaYi/Tools/Carmal/SLAnimateImageView'
ld: library not found for -lAFNetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)

等等,這樣的情況,很多是不支持模擬器調(diào)試.因為iOS14只支持arm64,很多三方庫暫時還不支持.導(dǎo)致模擬器運(yùn)行錯誤.直接采用真機(jī)調(diào)試即可.

6:圖片瀏覽

iOS 14.0 YYAnimatedImageView 無法顯示正常圖片

14.0 系統(tǒng)調(diào)用了此方法,YYAnimatedImageView沒有正確處理

(void)displayLayer:(CALayer *)layer;

解決如下
YYAnimatedImageView.m

(void)displayLayer:(CALayer *)layer {
if (_curFrame) {
layer.contents = (__bridge id)_curFrame.CGImage;
} else {
// If we have no animation frames, call super implementation. iOS 14+ UIImageView use this delegate method for rendering.
if ([UIImageView instancesRespondToSelector:@selector(displayLayer:)]) {
[super displayLayer:layer];
}
}
}

iOS14更新內(nèi)容及兼容設(shè)備

iOS 14 兼容設(shè)備.png

還有一些待完善,會持續(xù)更新下.

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

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