当前位置: 首页 > 知识库问答 >
问题:

根据子视图调整超级视图的大小

秦博达
2023-03-14

我有3个子视图(UILabelUIImageviewUIButton


共有2个答案

鞠修雅
2023-03-14
匿名用户

这是可能的。

在我的例子中,我想给分段控制加圆角。为此,我在< code>UIView中嵌入了分段控制。现在我需要根据分段控件的大小来调整容器视图的大小。

我只给了以下约束,一切都得到了照顾。

(1)选择容器视图并给它XY约束。

  • 将空间引入Super视图
  • 顶部空间到超级视图

(2) 选择容器视图并给予Leading|Trailing|Top|Bottom

  • 将空间引导到分段控制。
  • 分段控制的顶部空间。
  • 尾随空间到分段控制。
  • 底部空间到分段控制。

(3) 选择分段控制,并为其设置高度Widthconstraints。

  • 身高:30//随便
  • 宽度:250//随便

现在,如果我改变分段控件的高度和宽度,它会自动调整容器视图的大小(分段控件的超级视图)。

漆雕疏珂
2023-03-14

是的,这是可能的。如果您计划根据子视图内容调整超级视图的大小,那么内在内容大小就是要走的路。

永远优秀的Ray Wenderlich网站有一个教程,涵盖了这一点。iOS 6开始自动布局:第2/2部分:

固有内容大小

在自动布局之前,你总是必须告诉按钮和其他控件它们应该有多大,要么通过设置它们的框架或边界属性,要么通过在界面生成器中调整它们的大小。但是事实证明,大多数控件都完全有能力根据它们的内容来决定它们需要多少空间。

标签知道它的宽度和高度,因为它知道在其上设置的文本的长度以及该文本的字体大小。按钮也是如此,它可能将文本与背景图像和圆角的一些填充相结合。

分段控件、进度条和大多数其他控件也是如此,尽管有些控件可能只有预定的高度,但宽度未知。

这称为固有内容大小,是自动布局中的一个重要概念。您已经看到它在使用按钮。自动布局会询问控件需要多大,并根据这些信息来布局屏幕。

 类似资料:
  • 我必须在屏幕上显示一个带有多个“开关”控件iPhone弹出窗口。并分别通过打开/关闭操作在弹出窗口上添加和删除子视图。有关情况的更好说明,请参见下面 就像上面一样,当“添加邮件”开关为“ON”时,弹出视图必须再次增加高度,再添加两个子视图。最后看起来像这样, 就是这样。我正在通过我的应用程序使用自动布局,这是我感到困惑的地方。我知道我可以删除弹出窗口,每次都可以再删除一个新的弹出窗口,但这似乎是新

  • 我有一个带有两个视图的线性布局,视图a占据了一些垂直空间,视图B占据了布局的其余部分。 在某个时刻,我想删除视图A。如何让LinearLayout刷新,以便视图B占据整个空间? 顺致敬意,

  • 我有一个具有两个垂直约束的视图,一个1:1的纵横比坐标系和一个中心对齐,因此它会根据屏幕的高度自动调整大小。现在,这个视图以UIImageViews的形式填充了一系列较小的子视图。我希望这些图像视图能够自动调整与超级视图成比例的大小,但我不知道如何做到这一点。我在superview中尝试了无数种约束,但都以一团糟而告终。有什么想法吗?

  • 我正在尝试实现这个功能: 在表视图的每个单元格中显示标题、说明和图像。但是,图像可能为零。要求是: 当image为nil时,自动展开标签以适应整个单元格 Tableview单元格高度应根据描述标签自动调整。 需要使用stackView 我以编程方式做到了这一点: > 设置此为tableview: 创建2个堆栈视图:一个用于标签,一个用于标签图像: 然而,这段代码不会自动调整tableview单元格

  • 我使用数组/循环从一个名为gallery(Wordpress)的自定义字段获取图像。检索到的图像未调整大小,这意味着它们的最大宽度为150px,最大高度为150px。现在我想知道如何自动让这些图像适应浏览器的大小。Chrome做得很好,但IE和FF做不到。当我设置img{width:100%;}调整大小是可行的,但是图像本身的大小是错误的,你可以想象得到。 是否有其他可能让图像自动调整到浏览器大小

  • 我有两个视图,我试图用自动布局调整大小/重新定位。 我设置了以下约束: 红色视图: 超级视图的顶部空间:0 落后和领先空间到超级视图:0 高度等于:100 蓝色视图: 顶部空间到红色视图:0 落后和领先空间到超级视图:0 高度等于:100 两个视图都是的子视图。蓝色视图有一个作为子视图(屏幕截图中未显示)。我想做的是更改红色视图的大小(带有动画),并让蓝色视图跟随该大小更改: 动画生效,红色视图的