gpt4 book ai didi

ios - 使用Auto Layout时相当于 "CGAffineTransformMakeTranslation (0,0)"?动画回到原来的位置

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:51 27 4
gpt4 key购买 nike

我正在尝试为从位置 A 到 B 然后再返回的 View 设置动画。以前,我会做类似下面的事情来为 B 设置动画:

[UIView animateWithDuration:1 animations:^{
self.myView.transform = CGAffineTransformMakeTranslation(100, 0);
}];

然后动画回到 A:

[UIView animateWithDuration:1 animations:^{
self.myView.transform = CGAffineTransformMakeTranslation(0, 0);
}];

所有这些都不需要知道原始位置。

现在在自动布局中,我使用以下代码为位置 B 设置动画:

self.myLeadingConstraint.constant = 100;

[UIView animateWithDuration:1 animations:^{
[self.view layoutIfNeeded];
}];

有没有办法在不需要创建另一个变量或在 IB 中查看初始值的情况下获取先前的常量值?有没有更好的方法来完成这一切?

提前致谢。

最佳答案

不,这是最简单的方法。以下是设置自动布局动画的选项:

  • 在 block 中调用 layoutIfNeeded。如果您只是翻译,只需更改常量。
  • 动画图层而不是 View 。
  • 放弃约束,使用自动调整大小的掩码。
  • 使用容器 View 并为该容器设置动画。
  • 使用不干扰的约束。
  • 在 viewDidLayoutSubviews 中设置框架。

你的意思是获取之前的常量值?不是已经在 self.myLeadingConstraint.constant 上了吗?

关于ios - 使用Auto Layout时相当于 "CGAffineTransformMakeTranslation (0,0)"?动画回到原来的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263487/

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