【SwiftUI系列】10.Button的使用
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
SwiftUI Button 控件摘要
本文介绍了SwiftUI中的Button控件,重点在于讲解Button的默认样式、自定义样式、组合样式问题和二次封装实例。
Button的默认样式
SwiftUI提供了三种默认按钮样式:DefaultButtonStyle、BorderlessButtonStyle和PlainButtonStyle。默认情况下使用的是DefaultButtonStyle,而BorderlessButtonStyle和PlainButtonStyle分别代表蓝色背景和无颜色背景的按钮。
Button的自定义样式
自定义样式可以通过
- ButtonStyle: 允许自定义按钮的label,但不能自定义Action。
- PrimitiveButtonStyle: 允许自定义按钮的label和Action。
通过重写makeBody方法并使用ButtonStyleConfiguration或PrimitiveButtonStyleConfiguration,可以实现如圆角按钮样式、文字阴影样式及其点击效果的自定义。
组合样式问题
使用buttonStyle和PrimitiveButtonStyle组合时,存在覆盖和优先级问题。多个buttonStyle组合可能无效,因为非Button视图会直接返回而不执行后续代码。为了解决此问题,应确保makeBody函数返回Button。
组合使用PrimitiveButtonStyle时,默认返回Button,因此组合通常没有问题,但如果不是,则应先执行PrimitiveButtonStyle。
Button的二次封装实例
二次封装Button旨在优化代码,包括封装带标题、带图像和同时带有标题及图像的按钮。通过将样式参数化,可以简化外部调用,并使代码结构更清晰。
还展示了如何向List中添加新项的示例代码,演示了结构体嵌套使用的实践。
本文通过具体代码实例讲解了如何高效地使用和自定义SwiftUI中的Button控件。
注:本摘要根据原文内容结构编写。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)