UIView 调整大小但不是子视图

Posted

技术标签:

【中文标题】UIView 调整大小但不是子视图【英文标题】:UIView resizing but not the SubViews 【发布时间】:2012-03-18 20:42:01 【问题描述】:

我有一个 UIView (v1):

 ---------------
|   ---------   |
|  |         |  |
|  |         |  |
|  |         |  |
|  | UIImage |  |     
|  |  View   |  |
|   ---------   |
|    UIView     |
 ---------------

使用 UIImageView (img1) 作为子视图。

当我要调整 UIView 的大小时:

int img1int = v1.frame.size.height+(img1.frame.size.height - img2.frame.size.height);
v1.frame = CGRectMake(v1.frame.origin.x, v1.frame.origin.y, v1.frame.size.width, img1int+20);

图像随视图调整大小,但我只想调整视图大小,让图像具有正常高度

int 是我做的一个演算,因为 UIView 的高度与 UIImageView (img1) 的高度相关。

知道如何仅调整 UIView 的大小吗?

非常感谢!

【问题讨论】:

你应该使用 UIScrollView 而不是 UIView 和 setContentSize = CGSizeMake(width, height) 它会正确调整大小 【参考方案1】:

在 XIB 文件中的 UIView v1 属性上关闭 "Autoresize Subviews"

默认情况下已选中。

这适用于您上面的应用。或者,如果您希望某些孩子自动调整大小而有些不希望,那么您可以在每个孩子上禁用自动调整高度/宽度(“自动调整大小”框中的红色箭头。

然后您的 UIImageView 将停止调整大小。

【讨论】:

以上是关于UIView 调整大小但不是子视图的主要内容,如果未能解决你的问题,请参考以下文章

用动画调整 UIView 的大小,子视图不会动画

iOS UIView 不调整子视图的大小?

UIView 调整内容大小

如何在加载了 nib 文件的 UIView 中调整子视图的大小

调整旋转 UIView 的子视图大小

使用自动调整子视图大小为 UIView 帧大小更改动画