扫码阅读
手机扫码阅读

【SwiftUI系列】10.Button的使用

134 2024-07-13

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:【SwiftUI系列】10.Button的使用
文章来源:
程序员华仔
扫码关注公众号
SwiftUI Button 控件摘要

SwiftUI Button 控件摘要

本文介绍了SwiftUI中的Button控件,重点在于讲解Button的默认样式、自定义样式、组合样式问题和二次封装实例。

Button的默认样式

SwiftUI提供了三种默认按钮样式:DefaultButtonStyleBorderlessButtonStylePlainButtonStyle。默认情况下使用的是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控件。

注:本摘要根据原文内容结构编写。

想要了解更多内容?

查看原文:【SwiftUI系列】10.Button的使用
文章来源:
程序员华仔
扫码关注公众号