objective-c - 自定义 UIView 的事件

标签 objective-c iphone

为我的 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/

相关文章:

iphone - 如何读取 Xcode 控制台输出?

ios - 断点在 Xcode 6.3 的 Swift 中不起作用

ios - 这些东西叫什么 %@ - 它们在任何地方都被编入索引了吗?

iphone - 哪种声音格式最适合cocos2d游戏项目?

objective-c - 调用方法时出错 : error use of undeclared identifier

iphone - 正确分配/取消分配 UINavigationControllerDelagate

iphone - 从 CMSampleBuffer 转换为 UIImage 对象

iphone - 按钮宽度、高度

iPhone 应用程序因内存不足而被终止,尽管我不认为情况是这样

objective-c - 如果我释放一个未分配的对象会发生什么?