gpt4 book ai didi

swift - 动画约束 : Working on the "View as iPhone" in IB but not other iPhones

转载 作者:行者123 更新时间:2023-11-28 15:17:12 25 4
gpt4 key购买 nike

我正在尝试为约束设置动画。它在 iPhone SE 上完美运行,但在 iPhone 7、6、8 等设备上运行不佳。

大编辑:

enter image description here

尝试修复它数小时后,我明白当我进入 IB 并选择 iPhone 8 View 时,当我启动并模拟它时,它在 iPhone 8 上完美运行。当我选择 iPhone SE 时,它在 SE 上完美运行。我不明白?? Interface Builder 的预览不应该影响模拟?!

我的观点是这样的:

enter image description here

动画在 UIImageView 上。 UIImageView 和标签之间没有约束链接:该图像具有 X 和 Y 约束以将其对齐在屏幕的中心,以及我使用以下代码设置动画的高度和宽度约束:

 func animate() {

UIView.animate(withDuration: 1.0,
delay:0.0,
options: .curveEaseIn ,
animations:{

self.imageHeightConstraint.constant = 240.0
self.imageWidthConstraint.constant = 240.0
self.imageAlignYAxes.constant = 0

self.logoImage.center.x = (self.view.frame.width)/2
self.logoImage.center.y = (self.view.frame.height)/2

self.view.layoutIfNeeded()


},
completion:nil)

animateTwo()

}

在我添加这段代码之前,图像一直在从中心移动:

                        self.imageAlignYAxes.constant = 0

但现在它是移动图像下方的标签,但仅适用于 iPhone 6,6s、7,7+ 等,8 不在 SE 上。在 SE 上它工作得很好,标签不会移动.

我正在使用 SE 模型制作 Storyboard,我想这就是它在 SE 上工作的原因,但我不明白为什么动画会移动标签而不应该移动标签。

预先感谢您的回答!

最佳答案

检查您正在设置动画的约束,也许您只启用了这些特定于设备的约束。

通过示例项目,我发现问题出在 layoutIfNeeded() 上。由于您只是将约束更改为 UIImageView,因此应仅在该 View 上调用 layoutIfNeeded()

关于swift - 动画约束 : Working on the "View as iPhone" in IB but not other iPhones,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46622597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com