2019年iOS面試題《二》

1.iOS9-13,每個版本講一個特性:

iOS9系統(tǒng)發(fā)送的網絡請求將統(tǒng)一使用HTTPs细睡,將不再默認使用HTTP等不安全的網絡協(xié)議勤揩,而默認采用TLS 1.2俗批。服務器因此需要更新俗或,以解析相關數(shù)據(jù)。如不更新扶镀,可通過在 info.plist 中聲明蕴侣,倒退回不安全的網絡請求。

· 將允許出現(xiàn)這種場景:同一app中多個location manager:一些只能在前臺定位臭觉,另一些可在后臺定位

· bitcode的理解應該是把程序編譯成的一種過渡代碼昆雀,然后蘋果再把這個過渡代碼編譯成可執(zhí)行的程序。bitcode也允許蘋果在后期重新優(yōu)化我們程序的二進制文件蝠筑,有類似于App瘦身的思想狞膘。

· stackView

· Multasking:多任務特性,三種形式

· 臨時調出的滑動覆蓋:Slide Over

視頻播放的畫中畫模式(Picture in Picture)(AVPlayerViewController默認支持什乙。MPMoviePlayerViewController被deprecated掉了挽封,不支持)

iPad真正同時使用兩個App

· UI Test:iOS9.0之前加入異步代碼測設和性能測試,可以說Xcode自帶的測試框架已經能滿足絕大部分單元測試的需求了臣镣,但是這并不夠辅愿,因為開發(fā)一個iOS app從來都是很注重UI和用戶體驗的,之前UI測試使用KIF忆某,Automating点待,iOS9.0的Xcode給出了自帶的XCUITest的一系列工具,和大多數(shù)UI測試工具類似弃舒,XCUI使用Accessbility標記來確定view癞埠,但因為是Apple自家的東西,可以自動記錄操作流程聋呢,所以只要書寫最后的驗證部分就好了苗踪,比其他UI測試工具方便多了

· Swift2

· APP Thinning:app為了后向兼容,都同時包含了32bit和64bit削锰,在圖片資源2X和3X的一應俱全通铲,下載的時候只需要當前機型對應的一套資源,但是卻要全部打包下載器贩,現(xiàn)在只需要升級iOS9测暗,就可以省很多流量

· 3D touch

· 地圖顯示實時的交通狀況

· 人工智能siri更加智能,幾個大城市的地鐵及火車站入口都有詳細的標識

· 手機電池的低功耗設置

· Spootlight磨澡,你的設備會向推薦最近通話過的聯(lián)系人,使用過的APP以及你可能感興趣的去處质和、信息呈現(xiàn)更精彩稳摄。

iOS10新特性

· SiriKit 在 iOS 10 里面開發(fā)者可以使用 Siri SDK,這可能是 iOS 10 最重要的新 SDK之一饲宿。從此開發(fā)者可以使用原生API提供語音搜索厦酬、語音轉文字消息甚至更多常見語音功能胆描。

· Proactive Suggestions 貌似是一個和 CoreSpotlight 有整合的使用建議的東西。

· Message App Extension 在 iOS 10 里面開發(fā)者可以給 Message.app 提供兩種 App Extension仗阅,分別是可以提供一個表情包昌讲,和一個自定義的界面,用于表情搜索等减噪。

· User Notifications 這個 API 讓你可以處理本地或遠程的用戶通知短绸,并且可以基于某個條件,例如時間或者地理位置筹裕。這個異常強大醋闭,好像可以在通知里包含圖片和視頻了,貌似可以攔截并替換自己 app 發(fā)下來的 payload朝卒。

· Speech Recognition 見聞知意证逻,語音識別 API,可以把音頻流實時的轉換為文本抗斤。雖說早期版本已經有了TTS語音轉文字囚企,但畢竟Siri語義識別的加入讓機器對自然語義的把握更精準,詳見Speech.framework

· App Search Enhancements 對 CoreSpotlight 的增強瑞眼,其中我比較感興趣的是 Visualization of validation results龙宏。

· Widget Enhancements 為了配合 iOS 10 鎖屏下面 Widget 的體驗,蘋果提供了 widgetPrimaryVibrancyEffect 和 widgetSecondaryVibrancyEffect 用于定制化 Widget 的界面负拟。

· CallKit callkit框架 VoIP應用程序集成與iPhone的通話界面烦衣,給用戶一個很棒的體驗,鎖屏后VoIP網絡電話可以直接用iPhone系統(tǒng)UI接聽了掩浙。

· App Extensions 其實上面也有提到花吟,iOS 10最重要的開發(fā)特點就是允許第三方應用對自帶基礎app的拓展關聯(lián), 全新 7 種 App Extension:

Call Directory(VoIP回調)

Intents(接Siri厨姚、Apple map等服務)

Intents UI(接Siri衅澈、Apple map等服務的自定義界面)

Messages(iMessage拓展)

Notification Content(內容通知)

Notification Service (服務通知)

StickerPack(iMessage表情包)

· Custom Keyboard 對第三方鍵盤的改進 通過 handleInputModeListFromView:withEvent: 可以彈出系統(tǒng)鍵盤列表。同時使用 documentInputMode 可以檢測輸入上下文中的語言谬墙,你可以對輸入方式進行一些類似于對齊方式的調整今布。

另外需要注意的是,和以往歷代iOS版本推出一樣拭抬,新陳代謝部默,有新SDK、新API的開放造虎,也會有舊的API被遺棄傅蹂,所以好好檢查你的項目,使用了被遺棄的API要盡快修改,以免不兼容份蝴!還有個要注意的問題 iOS10 對隱私權限的管理更為嚴格 犁功,比如訪問的攝像頭、麥克風等硬件婚夫,都需要提前請求應用權限浸卦、允許后才可以使用,或者現(xiàn)在要提前聲明案糙,雖然以往要求不嚴格限嫌。

iOS11導航欄

設置導航欄大標題:navigationBar.prefersLargeTitles,顯示的時機可以用navigationItem.largeTitleDisplayMode設置枚舉值侍筛。

設置導航欄搜索控制器

searchController :self.navigationItem.searchController = searchController

3.上面設置titleView為customView時出現(xiàn)寬度縮小的問題 (這個網上提到了這個問題萤皂,但是我自定義代碼并沒有出現(xiàn)這個情況)

3.調整相冊權限的key

NSPhotoLibraryUsageDescription改為NSPhotoLibraryAddUsageDescription

。(beta版本好像又改過來了匣椰,我現(xiàn)在沒有調整key也是可以訪問相冊的)

4.近場通訊

首先也要在info.plist配置NFCReaderUsageDescription

5.無線配備

  1. 棄用API裆熙,scrollview和tableview的改變

iOS11棄用了automaticallyAdjustsScrollViewInsets

屬性,新增contentInsetAdjustmentBehavior

來替代它禽笑。這可能使得一些刷新出現(xiàn)頭部錯亂入录。contentInsetAdjustmentBehavior其實是一個枚舉值。用來管理adjustedContentInset

-automatic和scrollableAxes一樣,scrollView會自動計算和適應頂部和底部的內邊距并且在scrollView不可滾動時,也會設置內邊距.

-scrollableAxes自動計算內邊距.

-never不計算內邊距

-always根據(jù)safeAreaInsets計算內邊距

我們這里要設置為never佳镜,所以我們的OC代碼可以這樣寫:

聲明tableView的位置 添加下面代碼

if(@available(iOS11.0, *)) {self.tableView.contentInsetAdjustmentBehavior =UIScrollViewContentInsetAdjustmentNever;self.tableView.contentInset =UIEdgeInsetsMake(0,0,0,0);self.tableView.scrollIndicatorInsets = _tableView.contentInset; }

在iOS8引入Self-Sizing之后,我們可以通過實現(xiàn)estimatedRowHeight相關的屬性來展示動態(tài)的內容僚稿。Self-Sizing在iOS11下是默認開啟的,Headers,Footers, and cells都默認開啟Self-Sizing蟀伸,所有estimated高度默認值從iOS11之前的 0 改變?yōu)閁ITableViewAutomaticDimension.

如果目前項目中沒有使用estimateRowHeight屬性蚀同,在iOS11的環(huán)境下就要注意了,因為開啟Self-Sizing之后啊掏,tableView是使用estimateRowHeight屬性的,就會可能會使代理方法設置高度失效.

通過以下方法進行關閉:

Table Views:separatorInset 擴展

iOS 7 引入separatorInset屬性蠢络,用以設置 cell 的分割線邊距,在 iOS 11 中對其進行了擴展迟蜜∩部祝可以通過新增的UITableViewSeparatorInsetReference枚舉類型的separatorInsetReference屬性來設置separatorInset屬性的參照值。

typedefNS_ENUM(NSInteger,UITableViewSeparatorInsetReference) {UITableViewSeparatorInsetFromCellEdges,//默認值娜睛,表示separatorInset是從cell的邊緣的偏移量UITableViewSeparatorInsetFromAutomaticInsets//表示separatorInset屬性值是從一個insets的偏移量}

7.拖放

8.文件管理

9.tableView右滑操作

增加了兩個代理方法來取代原來的代理方法(tableView: editActionsForRowAtIndexPath:)

// Swipe actions// These methods supersede -editActionsForRowAtIndexPath: if implemented- (nullableUISwipeActionsConfiguration)tableView:(UITableView)tableView leadingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath)indexPath- (nullableUISwipeActionsConfiguration)tableView:(UITableView)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath)indexPath

創(chuàng)建UIContextualAction對象時髓霞,UIContextualActionStyle有兩種類型,如果是置頂畦戒、已讀等按鈕就使用UIContextualActionStyleNormal類型方库,delete操作按鈕可使用UIContextualActionStyleDestructive類型,當使用該類型時障斋,如果是右滑操作薪捍,一直向右滑動某個cell,會直接執(zhí)行刪除操作,不用再點擊刪除按鈕酪穿。

10.Safe Area

以前做懸浮(支付晴裹,頭部標題等)被济,系統(tǒng)為我們提供了viewController的topLayoutGuide和bottomLayoutGuide方法進行約束,但是在iOS11中被廢棄了涧团,引用了一個新的概念只磷。safeArea,它提供兩種方式:safeAreaInsets或safeAreaLayoutGuide來提供給你safeArea的參照值泌绣,即insets或者layout guide钮追。同時如果改變Insets時會獲得兩個回調

UIView.safeAreaInsetsDidChange()UIViewController.viewSafeAreaInsetsDidChange()

這個iOS的safe Area涉及到的第三方庫有mansory和IQkeyboard所以可能這兩個庫也會進行一些適配

11.UIToolbar and UINavigationBar— Layout

在 iOS 11 中,當蘋果進行所有這些新特性時阿迈,也進行了其他的優(yōu)化元媚,針對 UIToolbar 和 UINavigaBar 做了新的自動布局擴展支持,自定義的bar button items苗沧、自定義的title都可以通過layout來表示尺寸刊棕。 需要注意的是,你的constraints需要在view內部設置待逞,所以如果你有一個自定義的標題視圖甥角,你需要確保任何約束只依賴于標題視圖及其任何子視圖。當你使用自動布局识樱,系統(tǒng)假設你知道你在做什么嗤无。

  1. 管理margins 和 insets

基于約束的Auto Layout,使我們搭建能夠動態(tài)響應內部和外部變化的用戶界面怜庸。Auto Layout為每一個view都定義了margin当犯。margin指的是控件顯示內容部分的邊緣和控件邊緣的距離。 可以用layoutMargins或者layoutMarginsGuide屬性獲得view的margin,margin是視圖內部的一部分休雌。layoutMargins允許獲取或者設置UIEdgeInsets結構的margin灶壶。layoutMarginsGuide則獲取到只讀的UILayoutGuide對象。

參考鏈接:

http://www.reibang.com/p/2ca9ecdb07ce

iOS12新特性:

http://www.reibang.com/p/fd1f656dffce

iOS13新特性:

http://www.reibang.com/p/01cda53e2fc8

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末杈曲,一起剝皮案震驚了整個濱河市驰凛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌担扑,老刑警劉巖恰响,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涌献,居然都是意外死亡胚宦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枢劝,“玉大人井联,你說我怎么就攤上這事∧裕” “怎么了烙常?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鹤盒。 經常有香客問我蚕脏,道長,這世上最難降的妖魔是什么侦锯? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任驼鞭,我火速辦了婚禮,結果婚禮上尺碰,老公的妹妹穿的比我還像新娘挣棕。我一直安慰自己,他們只是感情好葱蝗,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布穴张。 她就那樣靜靜地躺著,像睡著了一般两曼。 火紅的嫁衣襯著肌膚如雪皂甘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天悼凑,我揣著相機與錄音偿枕,去河邊找鬼。 笑死户辫,一個胖子當著我的面吹牛渐夸,可吹牛的內容都是我干的。 我是一名探鬼主播渔欢,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼墓塌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奥额?” 一聲冷哼從身側響起苫幢,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎垫挨,沒想到半個月后韩肝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡九榔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年哀峻,在試婚紗的時候發(fā)現(xiàn)自己被綠了涡相。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡剩蟀,死狀恐怖催蝗,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情育特,我是刑警寧澤生逸,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站且预,受9級特大地震影響,放射性物質發(fā)生泄漏烙无。R本人自食惡果不足惜锋谐,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望截酷。 院中可真熱鬧涮拗,春花似錦、人聲如沸迂苛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽三幻。三九已至就漾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間念搬,已是汗流浹背抑堡。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留朗徊,地道東北人首妖。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像爷恳,于是被迫代替她去往敵國和親有缆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容