網站首頁 編程語言 正文
正文
swiftui 中的 padding 用于設置視圖的填充。
使用 padding() 可以指定 Text、Button 等視圖填充的數值,或者是對一個或多個邊設置填充。
下面讓我們來看看 padding 有哪些使用方式。
padding 的默認值
使用 padding() 設置填充時,沒有設置具體數值將會使用特定平臺給定的默認值。而這個默認值并沒有標準值,對于不同的設備,用戶的設置等情況,padding 的默認值都會有所不同:
如果值為 nil,則將應用特定平臺指定的或者由系統計算的值用于填充。
來看看具體示例:
import SwiftUI
struct Test: View {
var body: some View {
VStack{
Text("沒有默認值的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 顯示效果(下面示例默認使用 iphone14 pro 顯示):
上圖的顯示效果中,默認值和 16 的效果近似,但不代表默認值就是 16。
對某個方向設置 padding
padding 可以對上下左右 4 個方向單獨設置填充。
- top:上
- bottom:下
- leading:左
- trailing:右
import SwiftUI
struct Test: View {
var body: some View {
VStack{
Text("上padding")
.padding(.top, 20) // 文字頂部設置 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)
// 統一設置 16 像素的填充
Text("填充值為16的padding")
.padding(16)
.border(Color.gray)
}
}
}
struct Test_Previews: PreviewProvider {
static var previews: some View {
Test()
}
}
注意:如果在設置某個方向的 padding 時沒有給定具體數值,將會使用系統默認值:padding(.top)。
同時對多個方向設置 padding
我們還可以同時對多個方向設置 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()
}
}
對上下左右4個方向的 padding 進行精確設置
import SwiftUI
struct Test: View {
var body: some View {
VStack{
Text("精確控制4個方向的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()
}
}
總結
我們學會了 padding 的各個方向的設置,給你的布局加點 padding,對用戶體驗會更加友好哦。
原文鏈接:https://juejin.cn/post/7146035670606151710
相關推薦
- 2023-01-15 mvn?打包報錯:no?compiler?is?provided?in?this?environme
- 2021-12-11 C語言SetConsoleCursorPosition函數使用方法_C 語言
- 2023-07-26 node基于express+mongodb項目的整體結構搭建和邏輯抽離
- 2022-05-20 詳解在SQLPlus中實現上下鍵翻查歷史命令的功能_MsSql
- 2022-07-13 VMware Workstation Pro界面設置為中文界面
- 2022-11-14 gorm crud 指南
- 2022-03-16 C程序中Ubuntu、stm32的內存分配問題_C 語言
- 2022-05-29 .NET?Core通過dotnet?publish命令發布應用_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支