0

我正在为子类化 uiControl 进行测试,但它还没有工作,

这是我的代码:

MainVC.m::

- (void)viewDidLoad
{
    [super viewDidLoad];

    TesteaContol *tt = [[[TesteaContol alloc]initWithFrame:CGRectMake(20, 20, 80, 30)]autorelease];
    [tt addTarget:self action:@selector(ttActiono:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:tt];
}

- (void)ttActiono:(TesteaContol*)message
{
    NSLog(@"proyection");
}

TesteaContol.h

@interface TesteaContol : UIControl

TesteaControl.m

#import "TesteaContol.h"

    @implementation TesteaContol

    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code

            NSLog(@"cao");

            UIButton *vacas = [UIButton buttonWithType:UIButtonTypeRoundedRect];
            [vacas setTitle:@"pingus" forState:UIControlStateNormal];   ;
            vacas.titleLabel.textColor = [UIColor blackColor];

            vacas.frame = CGRectMake(0, 0, 80, 40);
            [vacas addTarget:self action:@selector(vacasPressed:) forControlEvents:UIControlStateNormal];

            [self addSubview:vacas];
        }
        return self;
    }


    - (void) vacasPressed:(id) sender
    {
        NSLog(@"vacanio");

        [self sendActionsForControlEvents:UIControlEventTouchUpInside];

    }

所以我正在使用 uiButton 进行测试,我看到了按钮,但没有响应触摸,

我错过了什么?

谢谢!

4

1 回答 1

3

这里有一个问题:

[vacas addTarget:self action:@selector(vacasPressed:) 
    forControlEvents:UIControlStateNormal];

“forControlEvents”部分的类型应该UIControlEvents不是UIControlStateNormal。对于常规按钮,您要替换UIControlStateNormalUIControlEventTouchUpInside

[vacas addTarget:self action:@selector(vacasPressed:)
    forControlEvents:UIControlEventTouchUpInside];
于 2012-04-17T11:44:53.080 回答