Сделать Dynamic ImageView кликабельным

Я работаю над приложением, которое динамически извлекает изображения из папки изображений и отображает их в ScrollView, очень похожем на этот обучающий код от Apple (посмотрите на метод viewDidLoad):

Каждое изображение помещается в ImageView. Теперь я хочу сделать каждое изображение кликабельным, но, поскольку оно динамическое, я не могу создать фиксированное количество IBActions + это было бы очень повторяющимся и копировал/вставлял, чего я хочу избежать.

Итак, в основном этот код:

-(IBAction)Fork {
[buttonImageView setImage:[UIImage imageNamed:@"Fork.png"]];
}

но для каждого изображения, которое создается. Я особенно запутался, потому что не могу «подключить» IBActions к кнопке через раскадровку.

Я ценю любую помощь с подсказками кода, так как я новичок.


person ernesto50    schedule 05.10.2012    source источник
comment
Добавьте распознаватель жестов касания в представление изображения. На кране вызывается метод. Вызовите тот же метод. В представлении изображения добавьте тег. Когда метод вызывается, ищите тег, и все готово.   -  person S.P.    schedule 05.10.2012


Ответы (1)


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

Вы можете использовать UITapGestureRecognizer, чтобы быстро начать работу:

UIImageView *imageView = ... // However you're creating it
UITapGestureRecognizer *tapper = [[[UITapGestureRecognizer alloc] init] autorelease];
[imageView addGestureRecognizer:tapper];
[tapper addTarget:self action:@selector(handleTap:)];

Реализуйте обработчик крана, например:

- (void)handleTap:(UITapGestureRecognizer *)recognizer
{
    UIImageView *imageView = recognizer.view;
    imageView.image = [UIImage imageNamed:@"Fork.png"];
}

Если вам нужно сделать что-то вроде настройки изображения при касании, вы, вероятно, захотите попробовать UIButton с пользовательским типом и соответствующим образом настроить изображение. В любом случае, надеюсь, это поможет!

person Carl Veazey    schedule 05.10.2012
comment
Спасибо, Карл, UITapGestureRecognizer был именно тем, что я искал! - person ernesto50; 07.10.2012
comment
@ernesto50 отлично, рад, что смог помочь! - person Carl Veazey; 07.10.2012