持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情
不怕路远,就怕志短;不怕缓慢,就怕常站;不怕贫穷,就怕惰懒;不怕对手悍,就怕自己颤。
大家好,我是小黑,一个还没秃头的程序员~~~
今天记录的是swiftUI基础控件之Button与Altert,话不多说,正文开始:
(一)Button
| 属性/修饰符 | 说明 |
|---|---|
| label | 内部布局 |
| action | 点击的事件 |
| contextMenu | 长按按钮后出现的菜单弹框 |
| alert | 点击将会弹出提示框 |
| 代码如下: |
Button("按钮1"){
self.isShowAlert=true
}.alert(isPresented: self.$isShowAlert, content: {
Alert(title: Text("你好"))
})
VStack{
Text("点击会弹出Alert").alert(isPresented: self.$isShowAlert, content: {
Alert(title: Text("这是一个alert"))
}).onTapGesture {
isShowAlert=true
isShowActionSheet=false
}
Text("").frame(height:20)
Button(action: {isShowActionSheet=true}, label: {
Text("弹出ActionSheet").actionSheet(isPresented: self.$isShowActionSheet, content: {
ActionSheet(title: Text("选择"), message: nil, buttons: [.default(Text("拍照")),.destructive(Text("删除")),.cancel(Text("取消"))])
})
})
}.navigationTitle("Alert").navigationBarTitle("Alert")
.navigationBarBackButtonHidden(true)
.navigationBarItems(leading: Button(action: {
self.presentationMode.wrappedValue.dismiss()
}, label: {
Text("返回")
}))
.navigationBarTitleDisplayMode(.inline)
(二)TextField、
- TextField:显示可编辑文本界面的控件
- SecureField:可以输入如密码类型的不可见的字符
- TextEditor:一个可以显示和编辑长文本的视图
下面是由上述控件组合成的一个简单的例子:效果如下:
VStack(){
HStack{
Text("用户名:")
TextField("请输入用户名", text: self.$username) { (change) in
print(change)
} onCommit: {
print(self.username)
}.textFieldStyle(RoundedBorderTextFieldStyle())
}.padding(.leading,10)
.padding(.trailing,10)
HStack{
Text("密 码:")
SecureField("请输入密码", text: self.$password).textFieldStyle(RoundedBorderTextFieldStyle())
}
.padding(.leading,10)
.padding(.trailing,10)
HStack(alignment: .top, spacing: 10){
Text("反 馈:").padding(.top,10)
TextEditor(text: self.$feedback)
.cornerRadius(10).overlay(
RoundedRectangle(cornerRadius: 10, style: .continuous)
.stroke(Color.gray, lineWidth: 1)
)
.frame(height: 100, alignment: .leading)
.padding(EdgeInsets.init(top: 0, leading: 10, bottom: 0, trailing: 10))
}.padding(.leading,10)
VStack{
Spacer().frame(height:20)
Button(action: {self.showAlert=true}, label: {
Text("登录")
.padding(.leading,10)
.padding(.trailing,10)
.background(Color.blue)
.foregroundColor(.white).alert(isPresented: self.$showAlert, content: {
Alert(title: Text("用户名:\(self.username)\n密码:\(password)"))
})
})
}.padding(.leading)
.padding(.trailing)
.cornerRadius(10)
}
.navigationTitle("TextField").navigationBarTitle("TextField")
.navigationBarBackButtonHidden(true)
.navigationBarItems(leading: Button(action: {
self.presentationMode.wrappedValue.dismiss()
}, label: {
Text("返回")
}))
.navigationBarTitleDisplayMode(.inline)
HStack{
Text("用户名 = \(user.name!)")
Spacer()
Button.init("删除") {
deleteCb(user)
}
.padding(EdgeInsets(top: 5, leading: 20, bottom: 5, trailing: 20))
.background(Color.red)
.cornerRadius(20)
}
今天的swiftUI学习就到这里,刚开始接触学的慢,但是希望可以吸收进去,为了以后的实战做准备,后面我会持续输出iOS开发笔记,感谢大家的阅读!