不同iPhone的动画

时间:2015-08-02 01:59:31

标签: ios iphone swift animation autolayout

您如何在多个iPhone屏幕上制作动画?让我解释一下。

所以,目前我有一个动画,其中三个按钮展开spring animation。我已经设置了自动布局,整个项目没有错误或风险。

在我的情况下,这很糟糕,我使用了CGPoint 所以,就像......

animationCodeMethod {

button1.center = CGPoint(x: , y: )
button2.center = CGPoint(x: , y: )
button3.center = CGPoint(x: , y: )

}

我的动画目标是三个按钮相互堆叠,在执行时相互滑出几个像素。

o //三叠

执行: - > o-o-o

我知道CGPoint方法很糟糕。

在iPhone 5等设备上运行的功能在iPhone 6或6 plus上看起来完全不同。我知道我应该在代码中使用自动布局,但字面上没有任何线索。你会如何设置它以便动画在所有屏幕上运行? CGPoint非常像素。因此,虽然它在一个屏幕尺寸上看起来不错,但在另一个屏幕尺寸上,分辨率会改变(更多像素),从而产生不同的结果。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

你的问题很模糊,所以很难给你一个通用答案。

使用硬编码值是使用"幻数"的情况,这很糟糕。

您应该设置约束,设置按钮的中心位置,将出口链接到这些约束,然后在代码中操作它们。

如果要分发按钮,请编写代表超视图宽度的代码,然后将空间分开以均匀放置按钮。

答案 1 :(得分:0)

由于您已经在使用AutoLayout,请尝试使用NSLayoutConstraints。将两个链接到ViewController;一个是button1和button2之间的水平间距,另一个是button2和button3之间的水平间距。在动画中:

button1And2Contraint.constant = distanceBetween
button2And3Contraint.constant = distanceBetween

获得superview的宽度并设置" distanceBetween"是明智的。相应