Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIView-won';在程序大小更改后,是否保持大小不变?_Iphone_Ios_Objective C_Uiview - Fatal编程技术网

Iphone UIView-won';在程序大小更改后,是否保持大小不变?

Iphone UIView-won';在程序大小更改后,是否保持大小不变?,iphone,ios,objective-c,uiview,Iphone,Ios,Objective C,Uiview,我有一个UIViewController,里面有一个UIView容器。当广告出现在屏幕上时,我会调整容器的大小,以考虑广告在屏幕上所占的差异。问题是视图的大小被调整,然后立即更改回原来的大小。我已经尝试了很多事情,但都没有成功 我已经在viewDidLoad方法中调整了容器视图的大小,但它没有做任何事情。我还尝试设置self.view.autoresizesSubviews=NO我的目标是让视图以与我的广告在屏幕上设置动画相同的方法设置大小更改的动画。不过,无论我做什么,尺寸变化都不会持续 我用

我有一个
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;

这是因为自动布局在默认情况下处于启用状态。您需要关闭该选项,或者通过设置约束动画而不是设置帧来设置大小更改的动画。要为视图底部的约束设置动画,请为其创建一个IBOutlet(我将其称为bottomCon),并修改其常量参数:

[UIView animateWithDuration:1 animations:^{
        self.bottomCon.constant = 300;
        [self.view layoutIfNeeded];
    } completion:nil]; 

我认为,当你设置框架时,该方法调用了2次,第一次它有正确的框架值,第二次它返回到默认值,所以只需记录你的对象,你就知道了。你能给我一个如何编辑约束的示例吗?此特定视图被约束到底部的superview。我只需要将底部约束向上移动到与广告相同的高度。谢谢你的更新。在这些容器视图上发生了一些非常奇怪的事情。出于某种原因,他们根本没有任何约束。我打开了autolayout,约束在多个其他场景中处于活动状态,但在这些容器上不处于活动状态。这有什么原因吗?我已经把它们放在了IB和指南中,但它们没有添加任何约束。@Jonathan,你使用的是什么版本的iOS?iOS 6和iOS 7都出现了这种情况。@Jonathan,我不知道怎么会这样——我在iOS 6中从未见过这种情况。在iOS 7中,您必须显式地添加它们,但系统会在iOS 6中为您添加它们(或者至少我总是这样)。