ios - 如何使用cornerRadius为SwiftUI中的按钮提供阴影
问题描述
我正在尝试使用以下代码为 Button 提供阴影。
代码:
Button(action: {
}) {
Text("SIGN IN")
.font(.system(size: 17))
.fontWeight(.bold)
.foregroundColor(.green)
.frame(minWidth: 0, maxWidth: .infinity)
.padding()
.background(Color.white)
.clipped()
.overlay(
RoundedRectangle(cornerRadius: 25)
.stroke(lineWidth: 1)
.foregroundColor(.white)
)
}
.shadow(color: .gray, radius: 2, x: 0, y: 2)
输出:
在上图中,您可以看到阴影不合适。
我怎样才能实现以下目标?
解决方案
我会这样做
注意:最后一个 .padding 并不重要,取决于按钮的放置位置和方式,这里仅用于演示。
Button(action: {
}) {
Text("SIGN IN")
.font(.system(size: 17))
.fontWeight(.bold)
.foregroundColor(.green)
.frame(minWidth: 0, maxWidth: .infinity)
.padding()
.background(
RoundedRectangle(cornerRadius: 25)
.fill(Color.white)
.shadow(color: .gray, radius: 2, x: 0, y: 2)
)
.padding()
}
推荐阅读
- java - 如何在两个反向代理后面配置 keycloak?
- sql - 当我在 tsql 上更新一条记录的 OrderNo 时如何更新其他 OrderNo
- angular - Travis 构建挂起等待用户输入(安装角度)
- javascript - 处理删除 NodeJS 中可能繁忙的文件的正确方法是什么?
- data-binding - Xamarin Forms:在活动重新启动时维护选定的选项卡
- arrays - 使用 Typescript 从数组中获取唯一的父元素
- python - 从 docker 容器中获取 sftp 服务器的主机 url
- angularjs - 在授权解决之前加载 AngularJS 模板 URL
- less - LESS:以类似于“嵌套规则”的方式创建变量
- laravel - 在 Laravel 5.8 中调用未定义的方法 Maatwebsite\Excel\Excel::create()