Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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调整子视图的大小_Iphone_Ios_Uiview - Fatal编程技术网

Iphone UIView调整子视图的大小

Iphone UIView调整子视图的大小,iphone,ios,uiview,Iphone,Ios,Uiview,我遇到了一个奇怪的调整大小行为 当我调整UIView的大小时,它的子视图的高度变为0 我想下面的代码只会调整视图的大小,而不是它的子视图 NSLog(@"view = %@", view); NSLog(@"subview = %@", subview); CGRect frame = view.frame; frame.size.height = 50; view.frame = frame; NSLog(@"view = %@", view); NSLog(@"subview = %

我遇到了一个奇怪的调整大小行为

当我调整UIView的大小时,它的子视图的高度变为0

我想下面的代码只会调整视图的大小,而不是它的子视图

NSLog(@"view = %@", view);    
NSLog(@"subview = %@", subview);
CGRect frame = view.frame;
frame.size.height = 50;
view.frame = frame;
NSLog(@"view = %@", view);
NSLog(@"subview = %@", subview);
但是,上述结果产生以下输出:

view = <UIView: 0x97e68c0; frame = (0 0; 320 400); autoresize = RM+BM; layer = <CALayer: 0x97e5f10>>
subview = <UIView: 0xb87f510; frame = (0 0; 320 50); autoresize = W+H; layer = <CALayer: 0xb87f020>>
view = <UIView: 0x97e68c0; frame = (0 0; 320 50); autoresize = RM+BM; layer = <CALayer: 0x97e5f10>>
subview = <UIView: 0xb87f510; frame = (0 0; 320 0); autoresize = W+H; layer = <CALayer: 0xb87f020>>
视图=
子视图=
视图=
子视图=

有什么想法吗

关键是日志输出中的这一部分:

autoresize = W+H;
这是
UIView
-autoresizingMask
的日志描述。检查文档。 基本上,它是描述调整superview大小时子视图应该做什么的方式。它非常强大


当前规则告诉子视图在调整超级视图的大小时调整其宽度和高度,并保持子视图上方和下方的距离不变(根据超级视图坐标系)。由于子视图不是很高,并且您正在大量调整superview的大小,因此子视图将下降到零高度,以尝试保持上下距离。

关键是日志输出中的这一部分:

autoresize = W+H;
这是
UIView
-autoresizingMask
的日志描述。检查文档。 基本上,它是描述调整superview大小时子视图应该做什么的方式。它非常强大


当前规则告诉子视图在调整超级视图的大小时调整其宽度和高度,并保持子视图上方和下方的距离不变(根据超级视图坐标系)。因为子视图不是很高,而且您正在大量调整superview的大小,所以子视图将下降到零高度,以尝试保持上下距离。

这就解决了这个问题。谢谢我从掩码中删除了UIViewAutoresizingFlexibleHeight(通过InterfaceBuilder),它工作起来很有魅力。谢谢这就解决了问题。谢谢我从掩码中删除了UIViewAutoresizingFlexibleHeight(通过InterfaceBuilder),它工作起来很有魅力。谢谢