[SwiftUI練級-1]--增加導(dǎo)航欄
默認情況下码荔,iOS允許我們把內(nèi)容放置在屏幕上的任何地方,包括系統(tǒng)時鐘和home指示器的下面何恶。這樣看起來并不美觀漠嵌,因此SwiftUI默認會確保所有的內(nèi)容被放置在不會被系統(tǒng)UI或者屏幕圓角覆蓋的地方敬矩,即所謂的safe area概行。在iPhone 11上,safe area是從劉海以下一直到home指示器之間的區(qū)域弧岳,看一下實際效果吧:
var body: some View {
Form {
Section {
Text("Hello World")
}
}
}
}
你可以通過iOS模擬器來查看效果凳忙,點擊Xcode窗口左上角的Play按鈕,或者按下Cmd+R禽炬。你會看到Form從劉海下面開始涧卵,默認全屏展示。但是腹尖,F(xiàn)orm是可以滾動的柳恐,當你在模擬器中swipe時,F(xiàn)orm里的行會跑到系統(tǒng)時鐘下面热幔,變得難以閱讀乐设。解決這個問題的常見方法是在屏幕頂部放置一個導(dǎo)航欄。導(dǎo)航欄可以有標題和按鈕绎巨。在SwiftUI中近尚,導(dǎo)航欄支持在用戶執(zhí)行動作時顯示新的視圖。按鈕和新視圖會在后面的工程中展示场勤,這次我們先給導(dǎo)航欄添加一個標題戈锻,它將改善Form在滾動后的視覺。跟上面的方式類似和媳,我們在外面再包上一層視圖格遭,這一次這個視圖叫 NavigationView。
NavigationView {
Form {
Section {
Text("Hello World")
}
}
}
}
當你在Xcode的畫布中查看效果時留瞳,你會留意到頂部有一片灰色的區(qū)域拒迅。是的,它是導(dǎo)航欄的區(qū)域撼港。你通常會希望給導(dǎo)航欄設(shè)置一個標題坪它,可以用 modifier 來實現(xiàn)骤竹。Modifiers 跟常規(guī)的方法有一點區(qū)別:無論你把它們用在哪里帝牡,它們總會返回新的實例。讓我們?yōu)镕orm設(shè)置一個標題吧:
Form {
Section {
Text("Hello World")
}
}
.navigationBarTitle(Text("SwiftUI"))
}
當你添加 .navigationBarTitle() modifier 到我們的 Form 時蒙揣,Swift 實際上創(chuàng)建了一個新的 Form靶溜,這個新的 Form 基于前面所有的內(nèi)容增加了一個導(dǎo)航欄標題。注意導(dǎo)航欄標題,你會注發(fā)現(xiàn)它使用了標題的字號罩息。為了得到一個更小的字號嗤详,你可以用一種略有不同的方式調(diào)用
navigationBarTitle():.navigationBarTitle("SwiftUI", displayMode: .inline)
在設(shè)置app中,你會發(fā)現(xiàn) Apple 大小兩種標題字號:前面那屏是大字號瓷炮,后來那屏是小字號葱色。因為大字號更普遍,所以這個API有一個便利版本娘香,允許你直接用字符串而不是文本控件來設(shè)置標題:
.navigationBarTitle("SwiftUI")