Как я могу установить действия на UIImages, когда я использую их в качестве кнопок? - PullRequest
0 голосов
/ 14 февраля 2011

Здравствуйте, я использую изображения в качестве кнопок, так как я могу поместить методы событий по мере их нажатия, моя кодировка такая, как показано ниже ...

UIImageView* view = [[UIImageView alloc] initWithImage: [UIImage imageNamed: @"front_pag.png"]];
    view.frame = CGRectMake(0, 0, 320, 460);
    [self.view addSubview:view];


    new_button = [[UIButton alloc] init];
    UIImage *img1 = [UIImage imageNamed:@"new.png"];
    [new_button setImage:img1 forState:UIControlStateNormal];
    [new_button setFrame:CGRectMake(85, 430, 0, 0)];
    [new_button addTarget:self action:@selector(newMethod) 
         forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:new_button];

что мне делать, потому что в этом случае я могуне вызывать newMethod, даже у меня есть этот метод в том же классе.

что мне делать?

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Вы должны изменить свой вызов addTarget на это:

[new_button addTarget:self action:@selector(newMethod:) 
     forControlEvents:UIControlEventTouchUpInside];

Обратите внимание на точку с запятой после newMethod: имени

Это потому, что подпись вашего селектора должна быть следующей:

- (void) newMethod:(id) sender

Так и будет называться.

Удачи

1 голос
/ 14 февраля 2011

Я думаю, вы можете попробовать это,

uiimage *img1 = [UIImage imageNamed:@"someImage.png"];
button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self 
           action:@selector(aMethod:)
 forControlEvents:UIControlEventTouchUpInside];
[button setImage:img1 forState:UIControlStateNormal]
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];
...