【问题标题】:SwiftUI List - Conditional items break animationsSwiftUI List - 条件项打破动画
【发布时间】:2020-05-16 04:25:51
【问题描述】:

目前,我在 SwiftUI 上遇到了一个相当有趣的问题。我有一个包含多个项目的列表,包括一个 DatePicker(这不是原因,它会影响我尝试过的所有其他视图)。有条件地显示和隐藏 DatePicker(带有 if 和 EmptyView)会产生以下动画:

https://thumbs.gfycat.com/PoshPertinentBettong-mobile.mp4(我尝试嵌入 gif,但它不允许我。如果可能,请随时修复此问题):)

(请注意 DatePicker 如何在两个动画方向上从底部的列表项中剪切出来。其他元素的行为相同,但由于它们的高度而不太明显)

我可以完全禁用动画,但不想这样做。我尝试使用各种.transition.animation 等修饰符来解决此问题,但无济于事。

谁能解释这里发生了什么?

【问题讨论】:

  • 我可以重现这个问题:github.com/ralfebert/SwiftUIPlayground/blob/master/…。对我来说似乎是一个 SwiftUI 错误。顺便说一句,你是如何让选择器直接显示而没有另一个在列表/表单中展开/折叠的表格行?
  • 你会展示这个效果的演示代码吗?
  • @Asperi 这基本上是 Ralf Ebert 提供的。
  • @RalfEbert 我的日期选择器实际上是一个包装好的UIDatePickercountDownTimer 模式处于活动状态。我不确定这是否是您要问的。另外,我认为默认情况下不提供标签会显示它,但不能 100% 确定这种行为。

标签: swift animation swiftui transition swiftui-list


【解决方案1】:

项目展开/折叠时动画期间的重叠似乎是 SwiftUI 中的一个错误。

对于 iOS 13.4,您甚至可以在配置文件屏幕中的 SwiftUI 教程 WorkingWithUIControls 的官方 Apple 示例项目中看到它:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 2020-03-22
    • 1970-01-01
    • 2014-01-12
    • 2021-03-24
    • 1970-01-01
    相关资源
    最近更新 更多