2

我观看了“Interface Builder 中的新增功能”会话视频并尝试复制显示的代码,但不幸的是,当我将视图分配给自定义类时,出现@IBDesignable2 个错误:

Main.storyboard:错误:实时视图:无法更新自动布局状态:无法加载包“swiftTest”,因为它的可执行文件不可加载。

Main.storyboard:错误:实时视图:无法渲染 _TtC9swiftTest14ControllerView 的实例:无法加载包“swiftTest”,因为它的可执行文件不可加载。

稍后在视频中,我看到要拥有实时视图,您必须执行以下步骤:1. 创建框架 2. 创建类 3. 标记为可设计

我如何迈出第一步?

谢谢

4

5 回答 5

3

据我目前了解(在 Xcode 6 Beta 3 之前),@IBDesignable 只能在单独的框架目标中声明的视图中工作。但是,我也很难添加它,因为我没有各种链接中描述的“加号”按钮(因为隐藏项目和目标列表箭头选项已关闭)。

因此,选择您当前的项目目标,然后只需使用 xcode 菜单选项: Editor > Add target... 然后选择 Framework & Library > Cocoa Touch Framework等。

顺便说一句,为了测试@IBDesignable,本教程完美地作为起点: http ://www.weheartswift.com/make-awesome-ui-components-ios-8-using-swift-xcode-6/

该教程中需要注意的一件小而重要的事情(如果您在屏幕上关注它而不是关注其完整的 github 代码列表)是您的视图类必须使用@IBDesignable 前置/装饰,例如类 CustomView : UIView {... } 应该是 @IBDesignable 类 CustomView : UIView {...}

于 2014-06-12T07:19:15.107 回答
2

您应该将新框架作为当前项目的目标,并在此框架中添加您的实时视图。在主要目标的常规选项卡上,您将在嵌入式二进制部分中看到您的框架。

于 2014-06-05T20:46:49.760 回答
1

我有一个实时视图工作的项目,有一次我也有这些错误消息。关闭 XCode 并重新启动时,这对我来说消失了,fwiw。

于 2014-06-11T07:06:45.670 回答
1

Xcode 6 Beta 5中使用Swift对我来说效果很好而且很容易) 。


我已经确认使用Xcode 6 Beta 5不需要添加任何框架(例如,添加新项目目标时出现的对话框中框架下的 Cocoa Touch 框架选项)。我也不需要将 IBDesignable.h 添加到项目中。 根据问题的初始答案中链接的 weheartswift.com 文章,两者似乎都是过时的要求。

我需要做的就是:

  1. 使用关键字@IBDesignable为我的自定义 Swift 类源文件添加前缀类定义

  2. 我想用@IBInspectable显示在IB 属性检查器中的前缀变量(IB 识别几种常见的变量类型)。

然后,在将我的自定义组件(UIControl 子类)名称分配给 IB 的“类”名称文件(在右窗格中的 Identity Inspector 选项卡下)替换“UIView”之后 - 例如,我最初拖到 IB 上的 UIView 占位符对象的类名VC 的观点——从 IB 的 Content View 组件列表中选择我的自定义组件后,我看到我的所有自定义类的可检查项都显示在 IB 属性检查器中!很酷


注意:起初 XCode 只允许我在一个变量前面加上 @IBInspectable。它在随后的错误中显示错误。然后,突然它似乎工作了,之后就没有更多的问题了。不确定这是否是拼写错误,或者只是用 Xcode 一段时间来重新索引我的项目并预编译或解析代码。

于 2015-02-08T17:30:36.497 回答
0

我编写了关于@IBDesignable 和@IBInspectable 的代码,

首先,我有两个像你一样的错误,

然后,我改变了我写的代码,

你可以从我的github 上查看代码

祝你好运。

于 2014-06-11T04:00:25.047 回答