悄然而來的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è)備

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