我想做的是在 Xcode 的界面构建器中将组件/视图从一个超级视图拖到另一个超级视图,而无需重置其框架/位置。
执行此操作时 Xcode 的默认行为似乎是将要在其新超级视图中垂直和水平移动的视图居中,同时保留其尺寸。这非常令人沮丧,因为这意味着视图需要在其新的超级视图中手动重新定位。但是我在移动它之前已经正确定位了它,所以我希望 Xcode 只记住它的框架的所有属性,而不仅仅是它的宽度/高度。这可能吗?
我想做的是在 Xcode 的界面构建器中将组件/视图从一个超级视图拖到另一个超级视图,而无需重置其框架/位置。
执行此操作时 Xcode 的默认行为似乎是将要在其新超级视图中垂直和水平移动的视图居中,同时保留其尺寸。这非常令人沮丧,因为这意味着视图需要在其新的超级视图中手动重新定位。但是我在移动它之前已经正确定位了它,所以我希望 Xcode 只记住它的框架的所有属性,而不仅仅是它的宽度/高度。这可能吗?
另一种解决方案:
我发现了一些可以帮助你们的东西!
任务是将“子视图”重新组合为“父视图”,以便它们分层地成为父视图的子视图,并在显示时保留操作前的物理位置。
首先,调整父视图以物理覆盖子视图的区域。其次,确保所有孩子都在视图列表中低于它。
现在用鼠标选择所有的孩子并移动它们,例如向上一个像素和向下一个像素(只是说IB有一些变化)。之后释放孩子,他们将神奇地成为父母的孩子并保持他们的立场。
它适用于 OSX 10.8.2 和 Xcode 4.6。
祝你好运!
我设法节省了大量重新定位东西的时间,并做到了:
虽然不是很优雅,但不明白为什么 XCode 不支持 Shift 或其他东西。
选择要从一个 UIView 移动到另一个 UiView(可能是子项)或 ScrollView 的所有控件
剪切/复制
现在将新的 UIView/ScrollView 拖到现有的 UIView 后,不要单击一次以选择它,而是双击新的 UIView/ScrollView 并粘贴所有控件。
所有控件之间的距离差异将保持不变,但您可能需要再次重新定位控件。因此,在重新定位之前不要单击任何地方,只需通过导航箭头重新定位所有控件,因为这些控件都已被选中,或者您可能需要再次选择这些控件。
注意:我在 XCode 4.2
我做了一些类似于 Stepan 的解决方案,但没有使用情节提要。在 IB 中,当 ViewController 的视图打开时:
这是将子视图复制到另一个视图并保留位置的最佳解决方案:
第 6 步将删除嵌入视图,您将只复制子视图。
问:
将一个视图(其中包含许多其他子视图)嵌入到 ScrollView 或另一个顶级视图中并不像我目前所看到的那样直截了当。不久之后发生的事情是所有子视图似乎都放错了位置,因为它找不到它们的原始框架。
A:
按照以下步骤,您将能够尽可能轻松地解决它:
不,还没完!有时,您可能会遇到更多与 UI 约束相关的问题,您必须相应地解决它们。
我发现了另一种方法。基本上是:移动 = 剪切 + 粘贴
这样你就可以:
这样您就不会:
基础是,除了 Storyboard 中的一个(根)视图之外,每个视图都有其父视图。接下来,当您复制/移动多个子视图时,您会丢失帧和约束。
答案很简单。您通过将子视图 (SV) 的父视图 (P) 复制到新的父视图 (P') 来制作子视图 (SV) 的副本。这样,您可能只需要重新创建从该父新视图 (P') 到其新父视图的约束,而不是为您想要移动的每个子视图重新创建约束。
在您将父视图 (P) 复制到新视图 (P') 中后,从该新视图 (P') 中,您:
从原始父视图 (P) 你:
前:
视图1
视图2
磷
想要移动的 SV
SVs-你不想移动
视图3
后:
视图1
视图2
磷
SVs-你不想移动
视图3
P'
SVs'-你想搬家
我应该强调的是,如果您将 UIScrollView 作为父视图,这并不能很好地概括。然后它的副本将再次成为 UIScrollView,这可能是不可取的。
另一件事是当您删除原始父视图 (P) 中的一些子视图 (SV) 时,如果其他(不可移动的子视图)引用它们,您可能需要重新创建一些约束。但无论如何你都应该这样做。
帮助我解决这个问题的是——