自定义UIView的活动

6 iphone objective-c

注册UIView子类的事件的最佳方法是什么,以便我可以将它们连接到界面构建器中的IBAction-s?

目前我刚刚将一个标准的UIView放到我的主视图上,并将该类设置为"RadioDial"(我的自定义类).这显示视图很好,但我不知道如何从中获取事件.

谢谢

Jas*_*son 5

请澄清:你的意思是你想Interface Builder中提供您的视图控制器要连接您的视图子类会发光的自定义事件(很像Button控件允许您要连接触摸到内等)?

如果您需要此类功能,则需要在View上使用通用的"委托"属性并结合协议.

@protocol RadioDialDelegate
-(void)dialValueChanged:(id)sender
@end

@interface RadioDial
{
    id<RadioDialDelegate> radioDelegate;
}
@property (nonatomic, assign) IBOutlet id<RadioDialDelegate> radioDelegate;
Run Code Online (Sandbox Code Playgroud)

这将允许控制器连接到视图(假设它实现RadioDialDelegate)并接收从视图中出来的任何事件.或者,您可以使用无类型委托,并在View代码中使用后期绑定调用:

if([radioDelegate respondsToSelector:@selector(dialValueChanged:)]) {
    [radioDelegate dialValueChanged:self];
}
Run Code Online (Sandbox Code Playgroud)