swift - 从 RoundedRectangle 到 Circle 的 SwiftUI 缩放效果
问题描述
我正在尝试制作一个矩形按钮,在点击手势时变成一个具有缩放和平滑动画的圆形按钮。
ZStack {
ZStack {
RegularPolygon(sides: started ? 50 : 4)
.scale(started ? 0.75 : 1.0)
.fill(started ? Color(.green) : .red)
}
.frame(width: 350, height: 200)
.padding()
Text(started ? "start" : "Stop")
.font(.system(size: 36, design:.rounded))
.fontWeight(.heavy)
}
.animation(.easeOut(duration: 0.5))
这是我的代码,但我不喜欢这种方法,我认为这是一项压倒性的简单任务。
将矩形按钮转换为具有平滑缩放动画的圆形按钮的最佳方法是什么?
解决方案
尝试使用此代码将矩形按钮更改为圆形按钮。
ZStack {
// Rectangle CGFloat(self.isTapped ? 25.0 : 50)
RoundedRectangle(cornerRadius: CGFloat(self.isTapped ? 25.0 : 50))
.foregroundColor(self.isTapped ?.red :.blue)
.frame(width: CGFloat(self.isTapped ? 200 : 100), height: CGFloat(self.isTapped ? 40 : 100), alignment: .center)
Text(self.isTapped ? "Start" : "Stop")
.foregroundColor(Color.white)
}
.animation(.easeOut(duration: 0.5))
.onTapGesture {
withAnimation {
self.isTapped.toggle()
}
}
}
推荐阅读
- python - Marshmallow:根据数据动态选择Schema?
- postgresql - Flyway 无法连接到同一 Docker 容器中的数据库
- reactjs - 使用 Nginx、Docker、FastAPI 和 React (create-react-app) 的反向代理和子域提供无效的主机标头
- java - 将日期字符串解析为 Java 中的特定格式
- excel - 用于在现有数据下方粘贴的 VBA 代码不起作用,如果它在单行中有值
- c# - 带有 Windows 服务和 MEF 的 Web API
- tidymodels - 整洁模型中 XGBoost 的 L2 正则化
- ios - 是否有可能摆脱IOS照片删除确认弹出或自定义消息
- hybris - Hybris 1905 无法访问 hac 或后台
- python - 如何在并行化时使用 zip 进行异步