SwiftUI篇-3 排版布局layout

摘要
swiftUI提供的layout有:
ZStack、GeometryReader、HStack、LazyVGrid、LazyHStack、LazyHGrid、LazyVStack、VStack、Spacer、ScrollViewReader等


image.png

HStack 水平橫向布局容器,子view按順序水平排列

            HStack(alignment: .center, spacing: 10) {
                          Text("橫向布局 text1").padding(10)
                          Text("橫向布局 text1").padding(10)
                          
                      }.border(Color.blue, width: 1)

VStack 垂直縱向布局容器,子view按順序垂直排列

            VStack(alignment: .trailing, spacing: 10) {
                          Text("縱向布局 text1").padding(10)
                          Text("縱向布局 text1").padding(10)
                      }.border(Color.blue, width: 1)

ZStack 覆蓋布局容器,后面的子view會蓋住前面的子view

            ZStack(alignment: .center, content: {
                           Image("silversalmoncreek")
                            Text("覆蓋布局").foregroundColor(.red)
            })

GeometryReader 可以獲取到父view分配給它的size

            GeometryReader { geometry in
                Text("GeometryReader , width:\(geometry.size.width) height:\(geometry.size.height)")
            }
image.png

LazyHStack、LazyVStack:一行或一列顯示完子view,需要顯示時才渲染

            Section(header: Text("水平一行顯示完,需要顯示時才渲染")) {
                LazyHStack(alignment: .top, spacing: 10) {
                       ForEach(1...5, id: \.self) {
                           Text("Column \($0)")
                       }
                   }
            }
            Section(header: Text("垂直一列顯示完,需要顯示時才渲染")) {
                LazyVStack(alignment: .leading) {
                    ForEach(1...5, id: \.self) {
                        Text("Row \($0)")
                    }
                }
            }
image.png

Space 使用了Spacer則會占據(jù)剩余控件

            HStack{
                Text("北宋")
                Text("北宋")
                // 使用了Spacer則HStack會占據(jù)剩余的控件
                Spacer()
            }.background(Color.orange).padding(.bottom,10)
            
            HStack{
                Text("北宋")
                Text("北宋")
                // 沒使用Spacer則HStack不會占據(jù)剩余的控件
                
            }.background(Color.orange)
image.png

源碼下載

還有 12% 的精彩內(nèi)容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
支付 ¥8.88 繼續(xù)閱讀

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容