框架中的自定义 ui 组件未呈现到故事板
Posted
技术标签:
【中文标题】框架中的自定义 ui 组件未呈现到故事板【英文标题】:Custom ui component from framework not rendered to story board 【发布时间】:2017-12-10 13:05:38 【问题描述】:我正在创建一个包含一些可重用 UI 组件的 swift 框架。
当我在另一个应用程序中导入这个框架时,我能够以编程方式添加自定义组件。
但是,如果我在故事板上添加 UIView 并将其类更改为 customComponent,我将无法在故事板上看到它的预览。因此,我无法将此框架分发给其他开发人员,因为他们无法在 InterfaceBuilder 中可视化组件。
虽然,我可以在运行时看到组件,但它降低了在情节提要中使用框架的效率。
我已关注link 开发 swift 框架。
有两个项目 Library 和 SampleApp。
Libray : 这是一个 swift 框架,它作为一个自定义 ui 组件作为 MyButton。它是非常基本的用户界面,只是为了避免任何混淆。
SampleApp : 此应用程序使用库在示例屏幕上显示 MyButton
请告诉我如何在任何其他应用程序中从框架中查看自定义 UI 组件的预览。
编辑1:
我已上传应用建议的示例代码,但无法解决此问题。 Code
编辑 2: 纠正了教程的断开链接。我没有使用插座来简化它。
编辑 3: 有两个项目:Library 和 SampleApp
我有 MyButton.swift 作为库项目中的自定义小部件。
我在StoryBoard 中添加了 UIView 并将其类更改为 MyButton(来自库框架)
【问题讨论】:
【参考方案1】:当然有!
导入框架后:
import MyFramework
在 IB 中,选择框架模块:
编辑:
当然,我假设您已经制作了自定义组件IBDesignable
。
编辑 #2:
应该不需要“导入”到您的故事板中。您要做的就是确保您的视图控制器代码中包含import
,并且您的故事板的视图控制器是该子类。例如,这是一个名为 MainViewController
的视图控制器:
并将您的视图设置为受其控制:
【讨论】:
我应该如何在故事板中导入框架,因为它是一个 xml 代码。是的,我已将我的组件设为 IBDesignable。我可以在运行时看到小部件,但不能在界面生成器预览中看到。 您不需要这样做。只需import
进入情节提要“视图控制器”指向的视图控制器。默认情况下 - 在单视图项目中,它被称为 ViewController
。我将在我的答案中添加屏幕截图。
是的,我正在这样做,但在故事板上看不到预览。我已经分享了示例代码。如果你能检查一下我错过了什么,那将非常有帮助
我下载了你的样本。不知道我在看什么。在“应用程序”方面,什么都不是。故事板和视图控制器代码不包含任何内容。在框架方面,我只看到“.h”文件,暗示... Obj-C 框架?您的问题另有说明。
StoryBoard 上有一个 UIView。我已将其类更改为 MyButton。它不可见,因为我们无法在故事板上看到预览。但是如果您运行它一次,您将能够在屏幕上看到按钮。添加了有问题的屏幕截图。以上是关于框架中的自定义 ui 组件未呈现到故事板的主要内容,如果未能解决你的问题,请参考以下文章