Xcode的 - 有没有办法拖从一个视图到另一个组件没有失去它的框架?(Xcode - Is the

2019-06-26 08:06发布

我想要做的是从一个上海华到另一个Xcode的接口建设者拖动组件/视图,而无需其帧/位置被重置。

当这样做Xcode的默认行为,这似乎是中心看被垂直和水平移动在其新上海华,同时保留它的尺寸。 这是非常令人沮丧的,因为它意味着该视图需要在其新的上海华手动重新定位。 但我有它正确地定位之前,我把它,所以我想Xcode中只记得,而不只是它的宽度/高度计帧的所有属性。 这可能吗?

Answer 1:

另一种解决方案:

  1. 在子视图中选择你需要的产品,然后
  2. (在工具栏)编辑器 - >嵌入在 - >视图类型在嵌入。


Answer 2:

我发现的东西,可能会帮助你们!

任务是使他们成为分层父视图的孩子们重新集结“孩子的意见”到“父视图”,并保留作为行动之前显示的物理位置。

首先,调整物理占地子视图区域的父视图。 第二,确保所有儿童波纹管它在视图列表中。

现在用鼠标选择所有的孩子并将其移动例如一个像素向上和一个向下像素(只是说IB有一些变化)。 该版本中的孩子后,他们会奇迹般地成为父母的孩子,不断显示自己的立场。

它为我在OSX 10.8.2和Xcode的4.6。

祝好运!



Answer 3:

我设法节省了大量的时间花在重新定位的东西,这样做:

  1. 添加在Interface Builder父视图上相同的水平想成为子视图。
  2. 在文本编辑器的故事板,并复制父视图的子视图标签内将要成为子视图。 Xcode是要更新,一旦你保存它。

不是很优雅,虽然,不明白为什么的XCode不会移位或东西支持它。



Answer 4:

  1. 选择您想要从一个UIView的移动到另一个UIView的所有控件(反对票是小孩)或滚动型

  2. 剪切/复制

  3. 现在,拖动新的UIView /滚动型到现有的UIView后,不要点击一次以选择它,而不是双击新的UIView /滚动型和粘贴所有控件。

  4. 距离差将保持所有控件中相同,但您可能需要再次重新定位控制。 所以,不要点击任何地方,直到你重新定位这些功能,只需通过导航箭头重新定位的所有控制那些都已经选定,或者你可能已经再次选择的。

注:我米上的XCode 4.2



Answer 5:

我已经做了类似斯捷潘的解决方案的东西,不使用故事板。 在IB,而视图控制器的观点是开放的:

  1. 创建除了VC的主视图其他视图
  2. 将所有子视图到第二视图通过从一个视图拖动到另一个(从列表左侧拖动重置自己的位置),如果你不能使用你的鼠标,然后选择所有从列表左侧然后从IB选择它们选择使用“CMD”按钮从IB面板最后一个子视图。
  3. 带他们回到初始主视图的最终意见。
  4. 删除添加的视图,所有的设置。


Answer 6:

这是子视图复制到另一个视图中的最佳解决方案,保留的位置:

  1. 在子视图中选择你需要的产品,然后
  2. 编辑 - >嵌入在 - >查看
  3. 复制此视图(Cmd + C键)
  4. 撤消按(Cmd + Z)(既然你只是想子视图)
  5. 转至视图要在子视图,并将其粘贴(Cmd + V键)
  6. 选择嵌入查看您复制,粘贴和编辑器- >取消嵌入

第6步将消除嵌入视图,你会抄刚子视图。



Answer 7:

当父视图拖放到另一个View的Xcode Interface Builder的食堂(UIView的,滚动型,StackView)

问:
嵌入一​​个视图(其中包含在其内的许多其它子视图)成滚动型或其他顶级的看法是不是直线前进什么我迄今所看到的。 什么后不久发生的事情是所有的子视图威力似乎错位,由于它无法找到原来的框架。

A:
按照下面的步骤,你将能够解决它尽可能简单:

  1. 在子视图中选择你需要的产品,然后
  2. 转到菜单栏,编辑器 - >嵌入在 - >查看
  3. 这个新的视图(Cmd的+ C)与子视图复制(我目前所有的约束条件,到目前为止在这一点保留)
  4. 转至视图(无论是滚动型,也可以是StackView)你想子视图是在和粘贴(Cmd + V键)复制视图
  5. 选择粘贴嵌入视图(您刚先前创建的),然后转到菜单栏的Xcode,编辑器 - >取消嵌入

不,还没完呢! 有时候,你可能会遇到有一些更多的UI约束相关的问题,你就必须相应地解决这些问题。



Answer 8:

我发现另一种方法。 它基本上是:移动=剪切+粘贴

这样,你这样做:

  • 让所有的子视图成为新的父视图的儿童(P')
  • 保持(几乎)所有的基于自动布局故事板的限制
  • 保持你的子视图的相对位置(帧)彼此

这样,你不这样做:

  • 在文本编辑器中编辑故事板文件

碱的事情是,在故事板除了一个(根)每个视图有其父视图 。 接下来,当你复制/移动多个子视图,你失去了框架和约束

答案很简单。 您可以通过复制他们的父视图(P)转换成新的父视图(P')让你的子视图(SVS)的副本。 这样,你可能需要重新创建从父新的视图(P')只限制其新的父视图,但不是对每个子视图您要搬家。

当你确实使父视图(P)转换成新的(P“),从该新数据视图(P”)你的副本:

  • 去掉所有的孩子,除了那些你想移动
  • 重新创建新的父(P')的约束
  • 重新创建可能界面生成器出口,以(SVS')

而从原来的父视图(P)你:

  • 删除所有你想要移动的孩子

之前:

视图1

视图2

P

SVS-你想做某些-MOVE

SVS-你-拒收想做某些举动

VIEW3

后:

视图1

视图2

P

SVS-你-拒收想做某些举动

VIEW3

P”

SVs'任您想对移动

我要强调的是,如果你有,例如作为的UIScrollView父视图这并不能一概而论好。 然后它的一个副本会再次一个UIScrollView什么可能不理想。

另一件事是,当你删除一些在原来的父视图(P)的子视图(SVS),你可能需要重新创建一些约束,如果其他(非移动的子视图)中引用它们。 但是,你应该做的反正。



文章来源: Xcode - Is there a way to drag a component from one view to another without losing its frame?