我希望能够与我制作的 UIControl 进行交互,因此希望将它放在我的 ViewController 中。
我尝试过的
但是在 Interface Builder 中,我无法将插座设置为新类 (1) 中包含的按钮?!
1:
2:
UIControl 的文档确认它是 UIView 的子类,因此我应该能够连接插座,对吧?
我在这里缺少什么? :/
当然,您无法添加 @IBOutlet,因为您添加到
WeekdayControl
的按钮位于 UIViewController
中。
您不能将 @Outlet 添加到
WeekdayControl
按钮只是 WeekdayControl
的子视图。
UIViewController
是这里的老大,你只能在UIViewController
添加@outlet。
更好地在
WeekdayControl
中以编程方式创建按钮。
必须先阅读:-
不能直接使用UIControl类来实例化控件。 相反,它定义了通用接口和行为结构 它的所有子类。
UIControl的主要作用是定义一个接口和基础 准备动作消息和初始调度的实现 当某些事件发生时,他们会到达目标
所以,你做错了,如果你确实需要制作自定义视图或自定义控件,那么你可以直接通过创建自定义 UIView 并将插座直接与视图连接来实现。
我认为您错过了对 UIControl 进行子类化的目标,它没有授予创建插座的权利,因为它是 UIView 的子类,只需阅读文档中所述的内容即可:-
子类化注释
您可能出于以下两个原因想要扩展 UIControl 子类:
观察或修改向目标发送操作消息 特定事件
为此,请重写 sendAction:to:forEvent:,评估传入的 选择器、目标对象或 UIControlEvents 位掩码,然后继续 必填。
提供自定义跟踪行为(例如,更改 突出外观)
为此,请重写以下一个或所有方法: 开始TrackingWithTouch:withEvent:, continueTrackingWithTouch:withEvent:, endTrackingWithTouch:withEvent:.