Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将自定义UI对象(UISwitch)添加到iOS项目_Iphone_Ios_Interface Builder_Custom Controls - Fatal编程技术网

Iphone 将自定义UI对象(UISwitch)添加到iOS项目

Iphone 将自定义UI对象(UISwitch)添加到iOS项目,iphone,ios,interface-builder,custom-controls,Iphone,Ios,Interface Builder,Custom Controls,我正在尝试使用向我的应用程序添加一个自定义的UISwitch,但是我很难弄清楚如何正确地实现它。在将文件添加到我的项目后,我将UISwitch更改为DCRoundSwitch,但遇到了几个问题,包括发送到实例的无法识别的选择器错误 我尝试过(1)转到Xib,选择开关,打开标识选择器并更改自定义类,但我看到的唯一选项是UISwitch。(2) 我还尝试将代码中的UISwitch更改为DCRoundSwitch,但这会导致运行它时出现上述错误 我觉得我错过了一步,但我不确定是什么。是否需要删除交换机

我正在尝试使用向我的应用程序添加一个自定义的
UISwitch
,但是我很难弄清楚如何正确地实现它。在将文件添加到我的项目后,我将UISwitch更改为DCRoundSwitch,但遇到了几个问题,包括
发送到实例的无法识别的选择器
错误

我尝试过(1)转到Xib,选择开关,打开标识选择器并更改自定义类,但我看到的唯一选项是
UISwitch
。(2) 我还尝试将代码中的
UISwitch
更改为
DCRoundSwitch
,但这会导致运行它时出现上述错误


我觉得我错过了一步,但我不确定是什么。是否需要删除交换机并重新添加新交换机?我以前从未以编程方式完成此操作。

DCRoundSwitch
不是
UISwitch
自定义类。这是从
UIControl
继承的。这意味着在interface builder中您没有设置
UISwitch
CustomClass
ui开关
DCRoundSwitch
之间根本不相关。所以您必须以编程方式进行设置。

您看到了吗?(我将该示例用于我的应用程序)

终于找到了解决方案

在IB中添加自定义UI对象的方法(将代码添加到项目中后)是将通用UIView对象拖到Xib上,根据需要调整其大小,然后切换到identity inspector并将类从UIView更改为DCRoundSwitch(或其他自定义对象)


警告:如果您没有看到列出的自定义对象,请尝试构建项目或关闭并重新打开xCode。在将代码添加到编译源代码后,xCode 4及以上版本应该可以识别它。

我以前没有以编程方式添加UI对象。你有什么建议吗?一个简单的示例非常棒。Alloc/init带有一个框架(或其他选项)-作为子视图添加到视图中-使用frame/center属性定位-enjoyYes我找到了几个我可以使用的项目/子类,我的问题不是查找代码并将其添加到我的项目中,它实际上是以编程方式或通过IB添加新开关。我是xCode新手,肯定缺少一个步骤。@Kyle,我明白了。你介意给我一个样本项目,这样我就可以看到这个问题了吗?请投票人解释一下为什么?我将问题编辑得更清楚一点,但本质上还是一样的。以这种方式添加自定义控件非常有效。它之所以能够工作,是因为在这种情况下,运行时将调用自定义控件的
initWithCoder
方法。你知道如何在XCode的检查器中分配一些可以在
initWithCoder
期间检索的值吗?