2013-06-29 63 views
20

我已经通过继承UIView创建了一个自定义选择器视图类型的控件。我希望能够在该控件中发送一个“UIControlEventValueChanged”控件事件,以便我可以在任何视图控制器正在使用该控件的情况下注册它。如何从我的自定义控件发送“UIControlEventValueChanged”事件?

我该如何才能让我的自定义控件在我认为应该触发时触发此事件?

+0

协议或通过NSNotificationCenter是要走的路。亲自选择协议在这种情况下。看看http://iosdevelopertips.com/objective-c/the-basics-of-protocols-and-delegates.html – Groot

回答

46

假设您的自定义控制扩展UIControl,那么你只需做:

[self sendActionsForControlEvents:UIControlEventValueChanged]; 

这将调用所有已注册的目标(通过addTarget:action:forControlEvents:,这个事件已经发生

+0

所有我的控制扩展UIView,因为UIControl扩展UIView你认为我可以简单地将所有的控件切换到子类UIControl,而不需要t o改变什么? – cgossain

+3

自定义控件应该总是扩展'UIControl'。这为您提供了该课程的所有好处。一旦你改变你的类来扩展'UIControl',你唯一需要做的就是去掉你从'UIView'没有得到的'UIControl'免费获得的代码。 – rmaddy

+0

完美。谢谢。你的回答正是你想要的。 – cgossain

相关问题