2012-08-16 74 views
0

我试图使用DCRoundSwitch将自定义UISwitch添加到我的应用程序,但是我正在努力弄清楚如何正确实施它。在将文件添加到我的项目后,我将UISwitch更改为DCRoundSwitch,但遇到了几个问题,其中包括unrecognized selector sent to instance错误。将自定义用户界面对象(UISwitch)添加到iOS项目

我试过(1)去Xib,选择开关,打开身份选择器并更改自定义类,但我看到的唯一选项是UISwitch。 (2)我也尝试在代码中将UISwitch更改为DCRoundSwitch,但是当我运行它时会导致上述错误。

我觉得我错过了一步,但我不知道是什么。我是否需要删除交换机并重新添加新交换机?我从来没有这样编程过。

+0

请问downvoter请解释为什么?我把问题编辑得更清楚一些,但它基本上仍然是一样的。 – 2012-08-16 16:56:52

回答

2

终于找到了解决方案!

添加在IB的自定义UI对象(将代码添加到您的项目后)的方式是拖动一个通用的UIView对象到您的XIB需要,然后切换到身份检查调整其大小并将类从UIView更改为DCRoundSwitch(或其他自定义对象)。

警告:如果您未看到自定义对象,请尝试构建项目或关闭并重新打开xCode。在将代码添加到编译源代码后,xCode 4和更高版本应该识别它。

+0

以这种方式添加自定义控件效果很好。它的工作原理在于,运行时将会调用自定义控件的'initWithCoder'方法。任何想法如何在XCode的检查员分配一些可以在'initWithCoder'中检索到的值? – HairOfTheDog 2013-04-10 23:22:07

0

DCRoundSwitch不是UISwitch自定义类。这是从UIControl继承的。这意味着你在界面生成器中没有设置UISwitch CustomClass。 DCRoundSwitch之间的UISwitch完全没有关系。所以你必须以编程方式设置。

+0

我之前没有以编程方式添加UI对象。你有什么建议吗?一个简单的例子会很棒。 – 2012-08-16 05:29:49

+0

带框架(或其他选项)的Alloc/init - 添加到您的视图作为子视图 - 使用框架/中心属性来定位 - 享受 – 2012-08-16 17:19:02

0

你见过这个吗? https://github.com/robertchin/rcswitch(我用我的应用程序的样本)

+0

是的,我找到了几个项目/子类我可以使用,我的问题是找不到将代码添加到我的项目中,实际上是通过编程方式或通过IB添加新开关。我是xcode新手,必须缺少一个步骤。 – 2012-08-16 15:53:44

+0

@凯尔我明白了。你介意给我一个样本项目,以便我能看到这个问题吗? – hightech 2012-08-16 17:12:34