Swift UI 常用控件

SwiftUI 與UIKit

image.png

Text

Text("Hello World  ")
.lineLimit(2)//行數(shù)限制
.multilineTextAlignment(.leading) //多行文字的文字布局
.kerning(5) // 每個字符間的間隔
.baselineOffset(5) // 每一行之間的間隔
.bold() // 字體黑體
.italic() // 字體斜體
.strikethrough(true, color: .red) // 刪除線,以及刪除線的顏色
.underline() // 下劃線
.allowsTightening(true) //是否允許壓縮字符間的間隔來適應一行的內(nèi)容
.opacity(0.6) //不透明度
.cornerRadius(1)//圓角

Button

Button(action: {//點擊按鈕以后會執(zhí)行action中的代碼
print("點擊了按鈕")
}) {//按鈕的外觀
Text("Click Me")
}

Image

Image("turtlerock")
.resizable()//可調(diào)整大小
.aspectRatio(contentMode: .fill)
//長寬比(等效于.scaledToFit())
.clipShape(Circle())//裁剪圖片,現(xiàn)在是裁剪成圓形
.border(Color.blue, width: 3.0)//為圖片添加邊框,可以設置邊框顏色和邊框?qū)挾?

TextField

TextField有兩種style
1、Plain: TextField 無占位內(nèi)容
2、Secure: SecureField 有占位內(nèi)容

@State private var text = ""
var body: some View {
        TextField(
            "type something...",
            text: $text,
            onEditingChanged: { _ in print("changed") },//每當用戶開始或完成編輯文本時,都會調(diào)用onEditingChanged閉包
            onCommit: { print("commit") }//每當用戶執(zhí)行諸如按回車鍵之類的操作時,都會調(diào)用onCommit閉包
        )
    }

Toggle

image.png
struct ToggleView: View {
    @State var isOn = true
    var body: some View {
        Toggle(isOn: $isOn) {
            Text("Offline Cache")
        }
        .padding()
    }
}

Slider

image.png
struct SliderView: View {
    @State var value = 0.5
    var body: some View {
        HStack {
            Slider(value: $value, from: 0.0, through: 1.0, by: 0.01, onEditingChanged: { _ in
                print(self.$value)
            })
            
            Text("\(self.value)")
                .padding()
        }
    }
}

SegmentControl

image.png
struct SegmentView: View {
   @State var choice = 0
   var channel = ["HBO", "Star Movies", "ESPN", "Discovery"]
   var body: some View {
       SegmentedControl(selection: $choice, content: {
           ForEach(0..<channel.count) { index in
               Text(self.channel[index]).tag(index)
           }
       })
   }
}

Stepper

image.png
struct StepperView: View {
    @State var age: Int = 0

        var body: some View {
            VStack {
                Text("Selected Age = \(self.age)")
                    .padding()
                
                Stepper(onIncrement: {
                    self.age += 1
                print("onIncrement \(self.$age)")
                }, onDecrement: {
                print("onDecrement\(self.$age)")
                    self.age -= 1
                }, label: {
                Text("Age")
            })
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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