本文價(jià)值與收獲
SwiftUI的工作原理以及與UIKit等框架的不同之處。 SwiftUI與以前在Apple平臺(tái)上開(kāi)發(fā)應(yīng)用程序的方式有著根本的概念上的偏離新蟆,它需要您重新考慮如何將您構(gòu)想的想法轉(zhuǎn)換為可工作的代碼
本文主要目的是幫助您磨練對(duì)SwiftUI的編程直覺(jué)读虏,著重講解SwiftUI背后的概念懂衩。至于基礎(chǔ)的使用腕铸,請(qǐng)參考我們之前的基礎(chǔ)文章办悟。SwiftUI內(nèi)功系列將帶您了解并掌握這些必不可少的核心概念驾凶,為SwiftUI的下一個(gè)十年做好準(zhǔn)備屠升。
看完本文您將掌握的技能
- 編碼實(shí)現(xiàn)獲取視圖的類(lèi)型
- 使用Swift高級(jí)語(yǔ)法Mirror
print(Mirror(reflecting: self).subjectType)
深入了解View結(jié)果
要在SwiftUI中構(gòu)造視圖,您需要?jiǎng)?chuàng)建一個(gè)視圖值樹(shù)來(lái)描述應(yīng)該在屏幕上顯示的內(nèi)容狭郑。要更改屏幕上的內(nèi)容腹暖,您需要先修改狀態(tài),SwiftUI會(huì)重新計(jì)算新的視圖值樹(shù)翰萨。然后脏答,SwiftUI更新屏幕以反映這些新的視圖值。例如,當(dāng)用戶(hù)點(diǎn)擊計(jì)數(shù)器按鈕時(shí)殖告,我們應(yīng)該增加狀態(tài)并讓SwiftUI重新渲染視圖樹(shù)
注意:在撰寫(xiě)本文時(shí)阿蝶,Xcode的SwiftUI內(nèi)置預(yù)覽并不總是有效。當(dāng)您看到意外的行為時(shí)黄绩,請(qǐng)確保對(duì)真實(shí)設(shè)備進(jìn)行仔細(xì)檢查羡洁,因?yàn)樵谀承┣闆r下,即使模擬器的行為也不同于真實(shí)設(shè)備
這是計(jì)數(shù)器應(yīng)用程序的完整SwiftUI代碼: