Swift:以编程方式加载/连接到在界面生成器中创建的控件

问题描述:

假设我有一个OSX应用程序,其中一些精灵在四处移动,将它们称为gremlins。当我点击一个gremlin时,我想显示一些滑块来控制该gremlin的某些属性,可能是缩放,速度,方向等等,然后再次单击gremlin来关闭滑块。然后点击另一个gremlin并显示滑块来控制该属性。我可以轻松创建一些NSSliders并在代码中进行设置。但我更愿意在Interface Builder中创建一组滑块,并按需加载它们:如果我想重新排列它们并使用它们的相对位置,那么使用该可视化界面进行操作会很好,而不是去操纵代码,重新编译,运行,点击一个gremlin,看看它是怎么样的。此外,它看起来总体上是更好的设计 - 但我不知道,我是Apple Land的新手,在这种环境中还没有做过专业的工作。Swift:以编程方式加载/连接到在界面生成器中创建的控件

我试过Google搜索的每一个变化,我可以想到的“Swift:以编程方式加载/连接到界面生成器中创建的控件”,但没有发现任何示范或讨论如何做到这一点,甚至没有迹象任何人都这样做。这让我担心这不仅仅是Apple Land中的事情。这可能吗?难以/不必要地困难?人们在做什么?如果可能的话,它叫什么,也就是说,我可以通过谷歌了解更多信息?

+1

我从来没有做任何事情像那样,但它绝对可以做到。最糟糕的情况下,一个视图控制器,在中间居中视图(确实需要给它一个高度和宽度,但你可以稍后以编程方式调整它们)。外层为alpha 0,中心层为“清晰”背景色。然后将其作为VC呈现,而UI元素之外的任何触摸(通过委托人)都可以移除FromFromSuperview()。不过,我相信有办法使用“视图”,这会给你更大的控制力和灵活性,但这是你可以尝试的一种方式。 –

+1

https://*.com/questions/30335089/reuse-a-uiview-xib-in-storyboard这可能是您需要的最佳方法 –

+0

@ AlexIoja-Yang这正是我所期待的,非常感谢。如果你喜欢,发布一个类似于“它被称为_reusing a view xib_”的答案,我会将其标记为接受的答案。 – GreatBigBore

请尝试查找“重新使用视图xib”。

这似乎是一个很好的起点:Example

  1. 创建XIB文件
  2. 设计它在Interface Builder
  3. 创建一个自定义的UIView文件并创建initialisers的观点
  4. 将文件添加为xib的所有者(Interface Builder)
  5. 连接的元素,从厦门国际银行,以奥特莱斯
  6. 负载在UIView的文件initialisers的厦门国际银行
  7. 其分配给新UIViews创建
+0

虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/17108992) – derape