实战需求
SwiftUI Button 自定义响应函数实现点击即触发?
本文价值与收获
看完本文后,您将能够作出下面的界面
看完本文您将掌握的技能
- 掌握Button基础使用
- 掌握ButtonStyle基础使用
- 设置圆形TextField
基础知识
Button
在触发时执行操作的控件。
struct Button<Label> where Label : View
总览
您可以通过提供操作和标签来创建按钮。操作是方法或闭包属性,当用户单击或点击按钮时,该操作会执行某些操作。标签是描述按钮操作的视图,例如,通过显示诸如“取消”之类的文本或诸如“后退箭头”之类的图标来描述。
Button(action: signIn) {
Text("Sign In")
}
对于纯文本标签的常见情况,可以使用便捷初始化程序,该初始化程序将标题字符串(或本地化的字符串键)作为其第一个参数,而不是尾随闭包:
Button("Sign In", action: signIn)
触发按钮的方法因平台而异:
在iOS和watchOS中,用户通过点击来触发标准按钮。
在macOS中,用户通过单击触发标准按钮。
在tvOS中,用户可以通过在按下Siri Remote之类的外部遥控器上同时按“选择”按钮来触发标准按钮。
向容器添加按钮
将按钮用于任何在按下时触发操作的用户界面元素。按钮会自动调整其视觉样式,以匹配这些不同容器和上下文中的预期样式。例如,要创建一个列表单元格,当用户选择该单元格时会触发操作,请在列表内容中添加一个按钮。例如:
// A list of items, where the last row, when triggered,
// opens a UI for adding a new item.
List {
ForEach(items) { item in
Text(item.title)
}
Button("Add Item", action: addItem)
}
ButtonStyle
一种类型,将标准交互行为和自定义外观应用于视图层次结构中的所有按钮。
protocol ButtonStyle
要为视图层次结构配置当前按钮样式,请使用修饰符。指定一种样式,该样式在创建使用针对每个平台定义的标准按钮交互行为的按钮时符合。要创建具有自定义交互行为的按钮,请改用。
buttonStyle(_:)
- ButtonStyle
- PrimitiveButtonStyle