gpt4 book ai didi

ios - 基于 subview 灵活调整UIView大小的固方案

转载 作者:行者123 更新时间:2023-11-29 12:38:35 25 4
gpt4 key购买 nike

假设您有四个左右的 View ,宽度均为 100,高度不同。你有一个包装器 View W,它包含所有这些。

A   |
B | W
C |
D |

小 View 的高度可以改变。那时你希望它们都移动、 float 、适本地调整 W 的大小。

现在,我正要编写几行代码来执行此操作。

所以 .. (1) 您可以让 W 找到所有 subview 并按从上到下的顺序列出它们。然后 (2) 每次有变化时,您将 (3) 重新定位每个 ABCD。每一个的位置是它上面的项目的高度之和,以及 (4) 将 W 调整为所有高度的总和。

现在一切都很好,但是——白痴重新发明了轮子!

我在 iOS 中是否遗漏了一些明显的东西?是否已经有一个每个人都一直使用的软件包?还是内置的东西?什么情况?

(请注意,当然令人沮丧的是,对于我们的 Android friend 来说,这是内置的!当然,任何 web-html 系统都会自动执行此操作。)

iOS View 的正确工程解决方案是什么?郑重声明,这仅适用于 iOS7+,如果有所不同,则无需涵盖任何过时的内容。干杯

最佳答案

(1) you'd have W find all the subviews and list them in order from top to bottom. Then (2) each time there is a change, you'd (3) reposition each of ABCD. the position of each one is the sum of the heights of the items above it, and (4) resize W to the sum of all heights.

您可以在 Interface Builder 中为整个过程使用约束,无需代码。这样做:

  • 设置 subview A的宽度为100
  • 约束 B、C 和 D 以匹配 A 的宽度
  • 在A和B、B和C、C和D之间添加垂直间距约束以保持它们的相对位置
  • 在 W(父 View ,以灰色显示)和 A 之间添加垂直间距约束
  • 在W和D之间添加垂直间距约束
  • 在 W 和 View A 之间添加前导和尾随空格限制

您最终会得到如下所示的内容:

constraints

Xcode 中的约束编辑器并不完全直观,但是一旦您了解了 IB 中的约束可以做什么和不能做什么以及何时需要使用代码来执行操作,它就很容易使用设置约束条件。

关于ios - 基于 subview 灵活调整UIView大小的固方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25612030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com