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

Xcode自动布局:最适合方形

周锐
2023-03-14

我有一个自定义的方形视图,可以根据需要增大和缩小。我的自定义视图只是覆盖 drawRect 来呈现内容。

包含的视图是矩形,而不是正方形。纵横比随设备方向和类型而变化。我需要调整我的自定义视图,以便它在容器中占据最大空间,但保持1:1的纵横比。

如果可能的话,我想在IB中设置约束,而不是代码。我有以下限制:

  • 容器中的垂直居中
  • 容器中的水平居中
  • 纵横比(1:1)
  • 内容模式设置为按比例填充

我尝试了各种方法来使自定义视图适合容器,这给我带来了IB布局错误,例如:

  • 宽度

我不能将任何一个尺寸设置成相等,因为我不知道容器是垂直的还是水平的...

这似乎是一项基本任务,但我无法理解。在矩形中放置正方形的最佳方法是什么?

共有2个答案

吕新
2023-03-14

前三个约束是正确。,移除其他并设置

  • 领先或落后和
  • 顶部还是底部

超级视图的约束

现在选择新添加的约束并使其

现在,你需要给你的视图设置宽度或高度限制,它可以从子视图中设置,就像我们在滚动视图中一样,或者给你视图设置一个等于320的宽度,使其也大于或等于。

李泓
2023-03-14

保留您已经拥有的约束,并添加新的约束:

  • 宽度和高度等于超级视图,但优先级低于纵横比约束
  • 宽度和高度
 类似资料:
  • Material Design 中的响应式布局适用于任何尺寸的屏幕。自适应 UI 手册包含:保证布局一致性的灵活网格、内容如何在不同屏幕上重绘的断点细节以及关于一个应用如何从小的屏幕缩放到超大屏幕的描述。 断点 为了最优的用户体验,Material 用户界面应该适应如下断点宽度的布局:480、600、840、960、1280、1440 以及 1600 dp。 1.布局中的总结和细节显示内容 600

  • 若要自动排列在画布上的对象,点击 “自动布局”按钮。若要更改自动布局,从菜单选择“图表”->“自动布局选项”并设置以下选项: 对象之间的空间 在图表中对象之间的距离。 试验次数 自动布局输出的品质。 自动调整维度 自动选择合适的图表维度。 调整适合的表大小 自动调整表的大小以适合其内容。

  • 若要自动排列在画布上的对象,点击 “自动布局”按钮。若要更改自动布局,从菜单选择“图表”->“自动布局选项”并设置以下选项: 自动调整图表维度 自动选择合适的图表维度。 调整适合的表大小 自动调整表的大小以适合其内容。 品质 自动布局输出的品质。 对象距离 在图表中对象之间的距离。

  • 我有一个嵌套的布局,如下所示: 我现在遇到的问题是,由于我所有的数据项都在子1或子2中,如果我添加或删除一个项,子Linearlayout将以animateLayoutChanges的效果设置动画,但父布局将不做任何动画。(对于所有线性布局,我将设置为)。尤其是当我删除子1中的一个项目时,动画效果会变得奇怪(基本上,当子1仍在制作动画时,子2会跳起来)。 有人知道怎么解决这个问题吗? 谢谢 更新

  •     你可能用过UIViewAutoresizingMask类型的一些常量,应用于当父视图改变尺寸的时候,相应UIView的frame也跟着更新的场景(通常用于横竖屏切换)。     在iOS6中,苹果介绍了自动排版机制,它和自动调整不同,并且更加复杂。     在Mac OS平台,CALayer有一个叫做layoutManager的属性可以通过CALayoutManager协议和CAConst

  • 本文向大家介绍移动布局自适应不同屏幕的几种方式相关面试题,主要包含被问及移动布局自适应不同屏幕的几种方式时的应答技巧和注意事项,需要的朋友参考一下 (1) 响应式布局 (2) 100%布局(弹性布局) (3) 等比缩放布局(rem)