1

如何向自定义视图添加操作?与 UIButton 的操作类似,我可以在 Inteface Builder 中进行连接。我不能使用像下面这样的 SEL,因为它不是一个对象,我该用什么?

 @property(nonatomic, weak) IBOutlet SEL action;
4

1 回答 1

1

您想让您的自定义对象成为 UIControl 的子类(它是 UIView 的子类)。然后你得到所有的目标/动作方法......如果你在代码中这样做,那么要探索的将是

– addTarget:action:forControlEvents:

如果您制作自定义 UIControl 对象,则可以在情节提要中拖出自定义视图并将其自定义类设置为您的 customControl。然后,您可以将 IBAction 链接拖到您的 viewController 中,就像它是一个按钮一样。

以下是如何在代码中制作...

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIControl* customControl = [[UIControl alloc]initWithFrame:CGRectMake(20, 20, 200, 200)];
    customControl.backgroundColor = [UIColor redColor];
    [customControl addTarget:self 
                      action:@selector(customAction:) 
            forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:customControl];
}

- (void)customAction:(id)sender
{
    NSLog (@"touched");
}
于 2013-01-31T18:05:39.283 回答