如何在View Controller中显示UIControl的子类

时间:2015-05-21 12:52:58

标签: ios swift interface-builder iboutlet uicontrol

我希望能够与我制作的UIControl进行交互,因此需要它在我的ViewController中。

我尝试了什么

  • 我将UIControl(1)分类。
  • 然后我向我的View Controller添加了一个UIView并为其分配了新类(2)。

但是在Interface Builder中,我无法将我的插座设置为新类(1)中包含的按钮?!

1:1



2:2



UIControl's documentation确认它是UIView的子类,因此我应该能够连接出口,对吗?

我在这里缺少什么? :/

2 个答案:

答案 0 :(得分:1)

必须先阅读: -

  

您不能直接使用UIControl类来实例化控件。   它改为定义了公共接口和行为结构   它的所有子类。

     

UIControl的主要作用是定义接口和基础   准备动作消息和最初调度的实现   当某些事件发生时,它们会达到目标

所以,你做错了,如果你真的需要制作一个自定义视图或自定义控件,那么你可以直接创建一个自定义UIView并直接将视图连接到视图。 < / p>

我认为你错过了子类化UIControl的目标,它没有赋予创建出口的权利,因为它是UIView的子类,只是阅读这些文档中所述的内容: -

  

子类注释

     

您可能希望扩展UIControl子类有以下两个原因:

     

观察或修改向目标发送的操作消息   特别活动

     

要执行此操作,请将sendAction:覆盖为:forEvent:,评估传入的内容   选择器,目标对象或UIControlEvents位掩码,并继续   必需的。

     

提供自定义跟踪行为(例如,更改   突出外观)

     

要执行此操作,请覆盖以下一种或所有方法:   beginTrackingWithTouch:withEvent:,   continueTrackingWithTouch:withEvent:,endTrackingWithTouch:withEvent:。

答案 1 :(得分:1)

当然,您无法添加IBOutlet,因为您添加到WeekdayControl的按钮位于UIViewController,您无法将插件添加到WeekdayControl,仅按钮WeekdayControlUIViewController的子视图在这里是老大,您只能将插座添加到UIViewController。 (抱歉我的英文)

最好在WeekdayControl中以编程方式创建按钮。