纵向模式下的动画UIView在ios上横向不一致

Posted

技术标签:

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

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

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

【问题讨论】:

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

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

【讨论】:

以上是关于纵向模式下的动画UIView在ios上横向不一致的主要内容,如果未能解决你的问题,请参考以下文章

修复横向模式下的旋转问题

iOS 8 横向纵向模式下的自定义键盘

一个视图上的纵向 UITabBarController,另一个 UIView 上的横向视图,不工作

在横向模式下添加 UIView

Xcode 说 UIView 在纵向时处于横向模式

在Swift ios中方向更改为横向模式时隐藏底部表格视图