2015-05-28 30 views
1

我在Paint代码中内置了一个图形,我在UIView中显示。它在应用程序中正常工作,但不会在故事板中呈现。我已经阅读了许多关于覆盖init框架和init编码器的文章。但是,我无法找到一个能帮助我解决问题的具体示例,通过展示这些覆盖的实际用法。使用@IBDesignable在Swift中渲染UIView,崩溃

该图需要14个变量才能生成条形图。下面是类代码

进口的UIKit

@IBDesignable 

class graphRisk: UIView { 

override func drawRect(rect: CGRect) { 

    StyleKitGraph.drawRiskGraph(ehsScale: ehsScale, ciScale: ciScale, stratScale: stratScale, qaScale: qaScale, delScale: delScale, leadScale: leadScale, peopScale: peopScale, hrmScale: hrmScale, pmScale: pmScale, costScale: costScale, finScale: finScale, assScale: assScale, itsScale: itsScale, engScale: engScale) 
} 

}

它看起来在App好,这是没有什么大不了的,如果作为变量进行编码不渲染,和设计很好,但是,我删除了@IBDesignable标签,它仍然错误相同。

最后,当我进入它所在的视图控制器时,如何获得UIView更新?

所以问题是;

1我该如何获得渲染以用于此代码示例?

2有没有办法不呈现视图,并停止错误的方式?

3我是否需要担心应用程序运行良好时的错误?

4如何获取UIView进行刷新。 .setNeedsDisplay()等的语法是什么?我尝试了很多东西,没有更新或重新加载或刷新。

一如既往,我真诚地欢迎所有的帮助,谢谢。

+0

您是否在删除@IBDesignable注释后重新启动Xcode?你清理了你的构建? – Marc

+0

谢谢马克重启已经解决了这个问题。 – Midaero

+0

我已经整理出来了。所调用的变量有一个小故障,这意味着它们在进入UIView时没有被覆盖。 – Midaero

回答

0

不确定你使用的Xcode版本是什么。我正在使用Xcode 6.4。

我和你一样,在很多网站上进行过多天的研究,并尝试过很多解决方案。他们都没有工作。最后,我将@IBDesignable移除到我的自定义UI类中。不仅错误消失了,自定义UI类的实例在Main.storyboard中预览得很好。

也许,在Xcode的新开发中,@IBDesignable不再是必需的。