swiftui開(kāi)發(fā)之padding默認(rèn)值設(shè)置詳解
正文
swiftui 中的 padding 用于設(shè)置視圖的填充。
使用 padding() 可以指定 Text、Button 等視圖填充的數(shù)值,或者是對(duì)一個(gè)或多個(gè)邊設(shè)置填充。
下面讓我們來(lái)看看 padding 有哪些使用方式。
padding 的默認(rèn)值
使用 padding() 設(shè)置填充時(shí),沒(méi)有設(shè)置具體數(shù)值將會(huì)使用特定平臺(tái)給定的默認(rèn)值。而這個(gè)默認(rèn)值并沒(méi)有標(biāo)準(zhǔn)值,對(duì)于不同的設(shè)備,用戶的設(shè)置等情況,padding 的默認(rèn)值都會(huì)有所不同:
如果值為 nil,則將應(yīng)用特定平臺(tái)指定的或者由系統(tǒng)計(jì)算的值用于填充。
來(lái)看看具體示例:
import SwiftUI
struct Test: View {
var body: some View {
VStack{
Text("沒(méi)有默認(rèn)值的padding")
.padding()
.background(Color.red)
Text("填充值為16的padding")
.padding(16)
.background(Color.blue)
}
}
}
struct Test_Previews: PreviewProvider {
static var previews: some View {
Test()
}
}
iphone14 pro 顯示效果(下面示例默認(rèn)使用 iphone14 pro 顯示):

上圖的顯示效果中,默認(rèn)值和 16 的效果近似,但不代表默認(rèn)值就是 16。
對(duì)某個(gè)方向設(shè)置 padding
padding 可以對(duì)上下左右 4 個(gè)方向單獨(dú)設(shè)置填充。
- top:上
- bottom:下
- leading:左
- trailing:右
import SwiftUI
struct Test: View {
var body: some View {
VStack{
Text("上padding")
.padding(.top, 20) // 文字頂部設(shè)置 20 像素的填充
.border(Color.gray)
Text("下padding")
.padding(.bottom, 20)
.border(Color.gray)
Text("左padding")
.padding(.leading, 20)
.border(Color.gray)
Text("右padding")
.padding(.trailing, 20)
.border(Color.gray)
// 統(tǒng)一設(shè)置 16 像素的填充
Text("填充值為16的padding")
.padding(16)
.border(Color.gray)
}
}
}
struct Test_Previews: PreviewProvider {
static var previews: some View {
Test()
}
}

注意:如果在設(shè)置某個(gè)方向的 padding 時(shí)沒(méi)有給定具體數(shù)值,將會(huì)使用系統(tǒng)默認(rèn)值:padding(.top)。
同時(shí)對(duì)多個(gè)方向設(shè)置 padding
我們還可以同時(shí)對(duì)多個(gè)方向設(shè)置 pdding。
import SwiftUI
struct Test: View {
var body: some View {
VStack{
Text("上下padding")
.padding([.top, .bottom], 20)
.border(Color.gray)
Text("上下左padding")
.padding([.top, .bottom, .leading], 20)
.border(Color.gray)
Text("左右padding")
.padding([.leading, .trailing], 20)
.border(Color.gray)
Text("左右下padding")
.padding([.bottom, .leading, .trailing], 20)
.border(Color.gray)
Text("水平padding")
.padding(.horizontal, 20)
.border(Color.gray)
Text("垂直padding")
.padding(.vertical, 20)
.border(Color.gray)
Text("填充值為16的padding")
.padding(16)
.border(Color.gray)
}
}
}
struct Test_Previews: PreviewProvider {
static var previews: some View {
Test()
}
}

對(duì)上下左右4個(gè)方向的 padding 進(jìn)行精確設(shè)置
import SwiftUI
struct Test: View {
var body: some View {
VStack{
Text("精確控制4個(gè)方向的padding")
.padding(EdgeInsets(top: 10, leading: 20, bottom: 30, trailing: 40))
.border(Color.gray)
Text("填充值為16的padding")
.padding(16)
.border(Color.gray)
}
}
}
struct Test_Previews: PreviewProvider {
static var previews: some View {
Test()
}
}

總結(jié)
我們學(xué)會(huì)了 padding 的各個(gè)方向的設(shè)置,給你的布局加點(diǎn) padding,對(duì)用戶體驗(yàn)會(huì)更加友好哦。
以上就是swiftui開(kāi)發(fā)之padding默認(rèn)值設(shè)置詳解的詳細(xì)內(nèi)容,更多關(guān)于swiftui padding默認(rèn)值設(shè)置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Swift與Objective C的簡(jiǎn)單對(duì)比
很多人想學(xué)習(xí)iOS開(kāi)發(fā),但是不知道如何從Objective-C和Swift之間選擇。而網(wǎng)上的一些答案,大抵說(shuō)的是,以后Swift終將取代Objective-C,但是目前來(lái)講還是Objective-C比較重要。那么究竟怎樣呢,今天我們就來(lái)探討下2016-12-12
Swift設(shè)置UILabel內(nèi)邊距的實(shí)例代碼
有時(shí)候,我們需要一個(gè)顯示文字,又想這些文字與邊界之間有自定義的邊距,所以下面這篇文章主要給大家介紹了關(guān)于Swift設(shè)置UILabel內(nèi)邊距的相關(guān)資料,需要的朋友可以參考下2021-10-10
swift實(shí)現(xiàn)顏色漸變以及轉(zhuǎn)換動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了swift實(shí)現(xiàn)顏色漸變以及轉(zhuǎn)換動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Swift中風(fēng)味各異的類型擦除實(shí)例詳解
你也許曾聽(tīng)過(guò)類型擦除,甚至也使用過(guò)標(biāo)準(zhǔn)庫(kù)提供的類型擦除類型如 AnySequence,下面這篇文章主要給大家介紹了關(guān)于Swift中風(fēng)味各異的類型擦除的相關(guān)資料,需要的朋友可以參考下2022-04-04
Swift中的條件切換語(yǔ)句switch...case學(xué)習(xí)教程
這篇文章主要介紹了Swift中的條件切換語(yǔ)句switch...case學(xué)習(xí)教程,Swift中的switch...case支持的數(shù)據(jù)類型很多,非常之強(qiáng)大,需要的朋友可以參考下2016-04-04

