animation - 列表行平滑动画
问题描述
我有一个列表,我想view
显示。animation
当我点击该行时,以下代码会产生生涩。我想修改以创建更流畅的动画。有没有办法平滑地对 a 的更改进行动画处理List
?
import SwiftUI
struct ContentView: View {
var body: some View {
List(0..<10){index in
ListItem(title: index)
}
}
}
struct ListItem: View {
@State var title: Int
@State var bOpen = false
var body: some View {
VStack{
Text("\(title+2) items")
withAnimation{
self.bOpen ? Options() : nil
}
}.onTapGesture {
self.bOpen.toggle()
}
}
}
struct Options: View {
var body: some View {
HStack {
Image(systemName:"circle.fill")
Image(systemName:"star")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
解决方案
使用.animation()
修饰符ListItem
喜欢:
ListItem(title: index).animation(.default)
您也可以将其应用于VStack
自身(如果您设法不ListItem
为所有更改设置动画)。
而且不需要withAnimation
推荐阅读
- python - 带有时区的时间戳到熊猫日期时间
- ms-access - 使用记录号将链接的 DBF 转换为 Access
- git - 特定日期的变更日志
- r - R - 根据 R 中其他列的值设置组值
- c# - 绑定 AuthenticationConfig 抛出异常
- c# - 使用实体框架在数据库中插入记录的问题
- java - 如何从 ArrayList 中删除一个项目
> - gps - 使用 VectorNav VN100 IMU 的路径映射来映射两个 GPS 坐标之间的路线
- angular - Angular Sourcemap 鼠标悬停在谷歌浏览器检查/调试模式下缺少的信息上
- python - 用于在 Keras 中输出的序列的 LSTM