【问题标题】:animated UIView in portrait mode is not consistent in landscape on ios纵向模式下的动画UIView在ios上横向不一致
【发布时间】:2014-07-02 09:42:23
【问题描述】:

我正在使用 ios 7 中的自动布局开发应用程序。我在纵向模式下使用 [UIView commitAnimation] 将标签从视图控制器的顶部移动到中间。标签移动到屏幕中间。 当我在动画结束后将设备方向更改为横向时,标签再次移回顶部而不是屏幕中间。

如何在纵向和横向模式下保持动画?

【问题讨论】:

  • 您是否尝试过使用 NSLayoutConstraint 设置 UILabel 的顶部填充,然后使用 yourConstraint.constant = someValue;调整标签的位置,最后放入 [self.view layoutIfNeeded];在 [UIView animateWithDuration:0.5 completion:^{ // 做某事 }];阻止?
  • 我还没试过。

标签: ios iphone ios7 ios6 autolayout


【解决方案1】:

使用自动布局时,每次 UI 更改时都会调用 viewDidLayoutSubviews。当您的设备从纵向旋转到横向并将标签的位置再次设置为上一个时,将调用此方法。假设您已经使用 IB 设计了布局。您必须在 viewDidLayoutSubviews 中相应地更改标签的位置,才能按预期完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多