gpt4 book ai didi

ios - 具有自动布局挑战的核心动画(尺寸变化)

转载 作者:行者123 更新时间:2023-11-30 13:23:26 26 4
gpt4 key购买 nike

我使用两种方法制作了一段核心动画,以便使对象看起来从现有位置的中心向外逐渐增大......

(1) viewDidLayoutSubviews()

self.imageView.frame = CGRectMake(187, 249, 0, 0)

位于此 imageView 对象的屏幕中心

(2) viewDidAppear() - 动画 block 持续时间为 1 秒。例如

UIView.animateWithDuration(1.0, delay: 1.5, options: [], animations: {

self.imageView.frame = CGRectMake(16, 70, 343, 358)

}, completion: nil)

它将对象放置在我希望它针对特定屏幕尺寸以全尺寸显示的位置。

当我在 iPhone 尺寸上使用 CGRectMake 的 x 和 y 坐标(...)时,我正在寻找它们工作正常,但是当我尝试使用不同屏幕尺寸的模拟器时,它不与自动布局约束一起使用,但会覆盖现有约束。

问题...

有没有办法通过以某种方式将其与屏幕尺寸成比例地居中而不是明确的坐标和尺寸来使该动画工作?通过 CGRectMake...? (...这似乎显示了自动布局和动画的使用之间的冲突)

理想情况下,我正在寻找一个优雅简单的解决方案?或者我是否处于技术的极限?

非常感谢!

最佳答案

您可以使用自动布局约束设置 imageView 位置并为其指定大小约束,并通过从中获取导出,您可以设置动画高度以增加,从而使所有其他约束发挥作用

@IBOutlet var myViewHeight: NSLayoutConstraint!

UIView.animateWithDuration(0.3, delay: 0.0, options: [], animations: { () -> Void in

        self.myViewHeight.constant = 300

self.view.layoutIfNeeded()
}, completion:nil)

您应该从约束本身获取导出,例如 Control+drag on Label.top = topMargin

You should take the outlet from the constraint itself

关于ios - 具有自动布局挑战的核心动画(尺寸变化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37499946/

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