2

我有一个里面UIViewController有一个UIView容器。当广告出现在屏幕上时,我正在调整该容器的大小,以考虑广告在屏幕上占据的差异。问题是视图被调整大小然后立即变回。我现在尝试了很多事情,但没有成功。

我已经努力在该viewDidLoad方法中调整容器视图的大小,但它没有做任何事情。我还尝试设置self.view.autoresizesSubviews = NO;我的目标是让视图以与我的广告在屏幕上设置动画的相同方法对尺寸变化进行动画处理。但是,无论我做什么,尺寸变化都不会停留。

我用来设置框架的代码:

CGRect rectFrame = CGRectMake(self.tableViewController.frame.origin.x,
                                  self.tableViewController.frame.origin.y,
                                  self.tableViewController.frame.size.width,
                                  self.tableViewController.frame.size.height - 300);

self.tableViewController.frame = rectFrame;
4

1 回答 1

5

这是因为自动布局,默认情况下是打开的。您要么需要将其关闭,要么通过动画约束而不是设置帧来动画大小变化。要为视图底部的约束设置动画,请为其创建一个 IBOutlet(我将其称为 bottomCon),并修改其常量参数:

[UIView animateWithDuration:1 animations:^{
        self.bottomCon.constant = 300;
        [self.view layoutIfNeeded];
    } completion:nil]; 
于 2013-09-11T04:35:39.813 回答