- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Xcode 11.3.1和11.4上进行了测试:
将隐式动画附加到转场时,某些转场类型似乎已损坏。具体来说,任何与位置相关的过渡都不会应用给定的隐式动画。 .slide
,.move
和.offset
损坏。 .opacity
和.scale
似乎还可以。 (见附件)
明确的动画似乎在所有情况下都可以正常工作。
即使使用自定义复合过渡,与位置相关的子过渡也不会响应隐式动画。
这是错误,还是预期的行为?
如果您要基于隐式属性更改为特定的UI元素触发多个不同的动画曲线,似乎将是一个问题。
struct MyExample: View {
@State private var isShowing = true
private let myAnimation = Animation.spring(response: 0.8, dampingFraction: 0.2, blendDuration: 3.0)
var body: some View {
VStack(spacing:20) {
if self.isShowing {
Text("Opacity").modifier(MyBigFont())
.transition(AnyTransition.opacity.animation(myAnimation))
Text("Scale").modifier(MyBigFont())
.transition(AnyTransition.scale.animation(myAnimation))
Text("Slide").modifier(MyBigFont())
.transition(AnyTransition.slide.animation(myAnimation))
Text("Move").modifier(MyBigFont())
.transition(AnyTransition.move(edge: .trailing).animation(myAnimation))
Text("Offset").modifier(MyBigFont())
.transition(AnyTransition.offset(x: 20, y: 0).animation(myAnimation))
Text("Custom").modifier(MyBigFont())
.transition(AnyTransition.myCustomTransition.animation(myAnimation))
}
Spacer()
Button(action: {
self.isShowing.toggle()
}) {
Text("Implicit Toggle")
}
Button(action: {
withAnimation(self.myAnimation) {
self.isShowing.toggle()
}
}) {
Text("Explicit Toggle")
}
}
}
}
struct MyBigFont: ViewModifier {
func body(content: Content) -> some View {
content
.lineLimit(1)
.padding()
.background(Color.purple)
.foregroundColor(.white)
.cornerRadius(8)
.font(Font.system(size: 21).bold())
}
}
struct MyCustomTransition: ViewModifier {
var isEnabled: Bool
func body(content: Content) -> some View {
if isEnabled {
return content
.offset(x: 20.0, y: 0.0)
.opacity(0)
} else {
return content
.offset(x: 0.0, y: 0.0)
.opacity(1)
}
}
}
extension AnyTransition {
static let myCustomTransition = AnyTransition.modifier(
active: MyCustomTransition(isEnabled: true),
identity: MyCustomTransition(isEnabled: false))
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
VStack {
MyExample()
Spacer()
}
}
}
最佳答案
为了使隐式过渡正确地可动画设置,它需要制作可动画的包含这些过渡的容器。
使用Xcode 11.4/iOS 13.4进行了测试。
这是唯一的解决方法:
struct MyExample: View {
@State private var isShowing = true
private let myAnimation = Animation.spring(response: 0.8, dampingFraction: 0.2, blendDuration: 3.0)
var body: some View {
VStack(spacing:20) {
if self.isShowing {
... // all your code here
}
}.animation(myAnimation) // << fix !!
}
}
关于animation - SwiftUI动画: Some implicit transition animations broken on iOS 13?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60959593/
我正在处理一个巨大的 xml 文档(其中包含大约一百万个条目),然后使用 rabbitmq 将格式化版本导入数据库。每次发布大约 200,000 个条目后,我都会收到一个 broken pipe 错误
2022-06-27 10:01:17.501 ERROR 1 --- [nio-5010-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Ser
当我在删除软件包时看到奇怪的行为时,我有点像 linux 新手并且一直在设置我的系统。 即,当我尝试使用 Synaptic 删除新安装的软件包时,它有时会提示该软件包已损坏并且我无法完成我的任务。第二
为什么我会收到“xyz 上的内部链接损坏”,其中 xyz 不是托管网站的服务器的 IP 地址? 更具体地说:我的网站地址是“myExample.com”,还有另一个 IP 地址,我们称之为“anoth
我正在用 Java 编写一个简单的服务器,并且我能够在服务器端检索来自客户端的传入数据,但由于 2000 毫秒的超时而无法在客户端检索传入数据。有谁知道为什么会超时? 这是服务器的代码: privat
使用此 HTML 和 CSS: code { background-color: grey; padding: 2px 7px; line-height: 24px; /* this do
这是一个页面,如果设备无法连接,我将尝试从文件系统加载备份 var
为什么该模式被认为已损坏?我觉得还好吗?有什么想法吗? public static Singleton getInst() { if (instace == null) createInst(
根据documentation : Once an iterator’s __next__() method raises StopIteration, it must continue to do
可能是一个业余爱好者的标志,我想知道问题是不是公案(而不是我),但是,考虑一下这个公案 def test_calling_global_methods_without_parentheses
我正在使用 chrome://inspect/#devices通过cordova检查我的android-app构建的WebView。它在我的 Mac 上运行模拟器。可以找到该设备,但如果我在 WebV
我有一个 headless Ubuntu 服务器。我从 Mac 上通过 SSH 在服务器上运行命令(snapraid 同步)。指挥说大约需要6个小时,所以我就留了一夜。 当我今天早上下来时,Mac 上
我正在实现与 Android 应用程序通信的服务器端应用程序。安卓应用程序之前已经实现了原来与C++ Server的通信。现在我想用java代码替换C++服务器。 Android 应用程序与服务器通信
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我对 2D 引擎的世界还很陌生。我弄清楚了如何加载图像并将其显示为 Sprite 和其他东西,但有一个问题困扰着我。例如,当“火箭”击中一个物体时,它会对其造成伤害并留下一个弹坑。我想在那个物体上显示
我无法使用 IF 语句来执行“正确”的操作,即代码; public function getUID($email) { $query = $this->dbh->prepare("SELECT
我认为这是一个非常简单的设置,但不知何故我遗漏了一些东西...... 这是传出的 HTML。这是一个简单的固定宽度 2 列布局: ... ... ... ...
我在使此布局在 IE 中正常工作时遇到了一些问题。问题是,当我有一些小型大写字母、带下划线的文本时,将垂直对齐设置为中间的图像会打断下划线。小写字母的下划线向下移动。 See the picture.
我正在使用 YUI 来重置浏览器类,然后我带来了 在几个自定义样式表中...我已经看到这种情况发生了几次,但我认为我从未缩小过原因范围: 表格正在拉入图像以组成带阴影的方形表格...但由于某种原因,它
在这个片段中我有两个部分。 第一个显示两列(使用 display: flex;)和一个列上方的标题。我必须使用一个中间标签(在本例中为文章)将“flex”保持在原位。 但我想知道是否有一个 CSS 属
我是一名优秀的程序员,十分优秀!