尝试更改帧大小的UIView动画在iOS 8中不起作用,但在iOS 7中不起作用

我想调整UIView的大小,我的代码在iOS 7.1中运行得很完美,但是当我在iOS 8中运行时,它无法正常工作(我将在下面解释).

我的故事板上有我的UIView值(0,67,511,320),我想在iPad上调整到全屏,所以我添加了以下代码

[UIView animateWithDuration:0.5 animations:^{

            CGRect frame = containerView.frame;
            frame.origin.x = 0;
            frame.origin.y = 67;
            frame.size.height = 643;
            frame.size.width = 1024;
            containerView.frame = frame;
            ...

        }completion:^(BOOL finished) {
            ...
        }];

我想要的东西:

_________________________________
|           |                     |
|           |                     |
|     A     |                     |
|___________|                     |
|                                 |
|                BACKGROUND       |
|                                 |
|                                 |
|_________________________________|

                |
                V
 _________________________________
|                                 |
|                                 |
|                                 |
|               A                 |
|                                 |
|                                 |
|                                 |
|                                 |
|_________________________________|

但它开始动画像(0,0)到(0,320)

关于发生了什么的任何线索?还是另类?

解决方法

您应该禁用预生成的约束.最简单的方法是使用自动调整遮罩而不是动画视图的约束.
containerView.translatesAutoresizingMaskIntoConstraints = YES;

你可以把这段代码放到你的-viewDidLoad方法或者上面[UIView animateWithDuration:…

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...