前言:北京時(shí)間2017年9月20日,iOS 11正式版發(fā)布礁扮≈伲控制中心瞬沦、App Store、Siri雇锡、Apple Pay逛钻、AR、相機(jī)掃描二維碼锰提、截圖曙痘、短信紅包、全新設(shè)計(jì)的iPad功能立肘,大家肯定早就迫不及待的升級(jí)新系統(tǒng)了边坤。So,問題來了谅年,我們這些開發(fā)者也需要適配iOS 11了茧痒。。融蹂。
1旺订,UITableView使用MJRefresh刷新位置錯(cuò)亂(tableview視圖布局錯(cuò)亂),self.automaticallyAdjustsScrollViewInsets = NO;此方法在iOS11中不能使用超燃,需使用以下方法
?if (@available(iOS 11.0, *)){
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
@available(iOS 11, *)必須包含至少2個(gè)特性參數(shù)区拳,其中iOS 11表示必須在 iOS 11 版本以上才可用。另外一個(gè)特性參數(shù):星號(hào)(*)意乓,表示包含了所有平臺(tái)樱调。
2,定位功能無法使用洽瞬,控制臺(tái)會(huì)打印信息本涕,具體提示為plist文件需新增NSLocationAlwaysAndWhenInUseUsageDescription字段,定位總共需要3個(gè)字段伙窃,分別為
NSLocationAlwaysAndWhenInUseUsageDescription是否允許后臺(tái)訪問您的位置菩颖,獲取所在城市的保險(xiǎn)信息
NSLocationAlwaysUsageDescription是否允許后臺(tái)訪問您的位置,獲取所在城市的保險(xiǎn)信息
NSLocationWhenInUseUsageDescription是否允許訪問您的位置为障,獲取所在城市的保險(xiǎn)信息
3晦闰,相冊(cè)訪問權(quán)限新增添加圖片到相冊(cè),具體提示為plist文件需新增NSPhotoLibraryAddUsageDescription字段鳍怨,相機(jī)呻右、相冊(cè)總共需要3個(gè)字段,分別為
NSCameraUsageDescription是否允許訪問您的相機(jī)
NSPhotoLibraryAddUsageDescription是否允許添加圖片到您的相冊(cè)
NSPhotoLibraryUsageDescription是否允許訪問您的相冊(cè)
4鞋喇,IQKeyboardManager鍵盤問題
(1)視圖過長声滥,第一次點(diǎn)擊textField區(qū)域,視圖定位到那個(gè)區(qū)域,并不能彈出鍵盤落塑,第二次點(diǎn)擊才能彈出鍵盤(不知道是不是IQ故意為之纽疟,暫時(shí)未能解決此問題)
(2)由于項(xiàng)目需求,需定制彈出視圖憾赁,于是我們就使用textfield鍵盤的inputView作為自定義視圖的容器污朽,這樣就簡化了彈出和關(guān)閉的一些操作。由于iOS11的出現(xiàn)龙考,IQ更新了一些方法蟆肆,原來使用的設(shè)置鍵盤的方法已移除(具體移除原因不清楚,未見說明)晦款,IQUIView+IQKeyboardToolbar.h中移除了一些屬性炎功。
(3)使用新方法[self.insStartDateTF addLeftRightOnKeyboardWithTarget:self leftButtonTitle:@"取消" rightButtonTitle:@"完成" leftButtonAction:@selector(cancel) rightButtonAction:@selector(insStartDoneAction:) shouldShowPlaceholder:YES];這里傳遞事件的sender是一個(gè)IQBarButtonItem,我這里只能通過方法名來區(qū)分每個(gè)完成所出發(fā)的事件缓溅,不明白為什么不能寫成一個(gè)方法名來區(qū)分觸發(fā)的事件亡问,希望大神能指點(diǎn)一下。
(4)下面的這里初始化不能設(shè)置frame,這樣設(shè)置的位置會(huì)偏移束世,直接初始化酝陈,默認(rèn)使用鍵盤的寬高
5,導(dǎo)航欄的Item不能均分毁涉,UIBarButtonSystemItemFlexibleSpace無作為沉帮,暫時(shí)沒能找到很好的解決方案,下下策只能是自定義導(dǎo)航欄了贫堰。
6穆壕,添加tableView和collectionView的預(yù)估高度,footer和header高度的方法在iOS 11上不會(huì)走了
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
或者重寫返回footer和header的view也可以其屏。
以上都是我親身經(jīng)歷過的喇勋,有些已經(jīng)解決,有的還在解決中偎行,有的暫時(shí)解決不了川背,希望和大家一起爬坑。