之前呈现的IBDesignable挂在故事板中的“正在更新”

时间:2015-10-09 18:33:49

标签: xcode swift uiview ios9 ibdesignable

  • Xcode 7.0.1(7A1001)
  • iOS 9.0

我制作了一个自定义的@IBDesignable UIView,只实现了drawRect函数。像这样:

@IBDesignable
class CustomView: UIView {
    override func drawRect(rect: CGRect) {
        let context = UIGraphicsGetCurrentContext()
        // Lots more drawing code after this
        // ...
    }
}

当我写这个drawRect时,我在视图控制器上有一个故事板,其中有几个不同的渲染实例。当我在drawRect中进行更改并保存时,这些更改将在接近实时的情况下反映在故事板中。甚至有一个IBInspectable String允许我更改枚举类型并根据不同的方式绘制。可以在故事板中调整视图的大小,并在我的绘图代码中考虑新的宽度和高度,并且绘图将按照我的预期进行缩放和翻译。

这一切都运行正常,我没有对该UIView子类进行任何更改,但我确实在故事板中删除了我的测试视图,同时构建了实际最终使用此自定义视图的新视图。

在做了大量的约束跳舞后,我准备将自定义视图放在它所属的位置。但它不起作用。身份检查员将我的自定义类确认为IBDesignable时,它会挂起“正在更新”状态。

identity inspector of custom uiview ibdesignable

为了证明我没有疯狂,我制作了全新的@IBDesignable UIView子类,它实现了简单的drawRects甚至是完全空的drawRects。这些现在具有相同的问题,并且不在故事板上呈现。

请注意,我可以在模拟器中运行此功能,图形会在运行时显示。那么故事板能够提供我期望从IBDesignable获得的那么好的反馈呢?

我尝试过的事情:

  • 清理/清理构建文件夹/清除XCode派生数据目录
  • 重新启动XCode
  • 删除/评论drawRect guts
  • 使用类似HelloWorld的教程制作最简单的@IBDesignables
  • 使用现有的已知工作@IBDesignables
  • 在故事板中创建新的UIViewController以放置自定义视图
  • Toggled:编辑器>自动刷新视图
  • 编辑器>刷新所有视图
  • 编辑器>调试所选视图

所有这些尝试都会继续在身份检查器的“自定义类”部分中显示“正在更新”。

显然,我实施之外的东西在这里引起了一个问题。还有其他人有这个问题吗?任何人都能指出我正确的方向吗?不知道还有什么可以尝试。

1 个答案:

答案 0 :(得分:0)

在身份检查器中显示“模块”的位置,添加您的AppName

enter image description here