ios - Swift:动画 UIView 向源移动而不是远离它

标签 ios swift animation

我认真地环顾四周,但没有找到可以回答我的问题的东西,所以如果您找到了正确的解决方案,请告诉我。

所以:我在 Xcode 中编写了一个小应用程序,其中两个标签应该从当前位置移动到 350 点以上的另一个位置。我像这样为它们制作动画:

UIView.animate(withDuration: 2.0 , animations: {            
    self.label1.center.y += CGFloat(-350)
    self.label2.center.y += CGFloat(-350)
})

实际发生的事情是,一旦命中这条线,标签就会跳下 350 点,然后将这 350 点向上移动到它们的来源。当我将 CGFloat 值更改为 +350 时,标签跳了 350 点,然后再次向下移动回到源。如此看来,Xcode 并没有从源头开始动画,而是试图让动画转到源头。老实说,我不知道为什么,因为所有关于动画的文档都另有说明。

顺便说一句,我也查看了我是否对标签的 y 轴位置有限制,但没有任何限制。

最佳答案

首先,尝试:

self.label1.center.y += CGFloat(-350)
self.label2.center.y += CGFloat(-350)

然后:

UIView.animate(withDuration: 2.0 , animations: {
    layoutIfNeeded()
}

注意:如果您对标签使用约束,您应该通过更改约束而不是向其添加 CGFloat 来更改标签的位置。然后尝试:

UIView.animate(withDuration: 2.0 , animations: {
    layoutIfNeeded()
}

关于ios - Swift:动画 UIView 向源移动而不是远离它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50545119/

相关文章:

java - Swift iOS 应用程序和 Java 程序之间的 SSLSockets

ios - 在 Parse 中获取任意数量的对象

iphone - 使用javascript从iOS Corona平台中的谷歌地图获取当前位置

iOS - 模棱两可的布局

html - 为什么我的 CSS 动画会破坏我的溢出?

安卓动画列表

javascript - 当元素处于 View 中时(当您滚动到元素时)成帧器运动动画

iphone - 在 for 循环中使用不同的 url 多次发送 NSURLConnection 请求

ios - UIImageView 实时滤镜在相机预览层上拉伸(stretch)

ios - 剪辑以限制 subview 内的特定 View