纵向模式下的动画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上横向不一致的主要内容,如果未能解决你的问题,请参考以下文章