为我的 UIView 子类注册事件的最佳方式是什么,以便我可以将它们连接到界面构建器中的 IBAction-s?
目前,我刚刚将一个标准的 UIView 拖放到我的主视图上,并将该类设置为“RadioDial”(我的自定义类)。这可以很好地显示 View ,但我不知道如何从中获取事件。
谢谢
最佳答案
请澄清:您的意思是您希望 Interface Builder 提供您的 View Controller 来连接您的 View 子类将发出的自定义事件(很像 Button 控件允许您连接 Touch Inside 等)?
如果您需要这种类型的功能,您将需要在您的 View 上使用通用的“委托(delegate)”属性并结合协议(protocol)。
@protocol RadioDialDelegate
-(void)dialValueChanged:(id)sender
@end
@interface RadioDial
{
id<RadioDialDelegate> radioDelegate;
}
@property (nonatomic, assign) IBOutlet id<RadioDialDelegate> radioDelegate;
这将允许 Controller 连接到 View (假设它实现了 RadioDialDelegate)并接收来自 View 的任何事件。或者,您可以使用无类型委托(delegate),并在您的 View 代码中使用后期绑定(bind)调用:
if([radioDelegate respondsToSelector:@selector(dialValueChanged:)]) {
[radioDelegate dialValueChanged:self];
}
关于objective-c - 自定义 UIView 的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/906762/