Как я могу определить, какой UIImageView был выбран прикосновением в BeG Touch? - PullRequest
0 голосов
/ 26 января 2010

Пользователь может создать неограниченное количество UIImageViews нажатием кнопки с этим кодом:

- (IBAction) addPicture:(id)sender { 
    imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 45.0, 324, 52.0)]; 
    imageView.tag = a;
    imageView.image = [UIImage imageNamed:@"Picture.png"];
    a = a + 1;
    [self.view addSubview:imageView]; 
    [imageView release];
}

Итак, первый UIImageView получает тег 1, а второй 2 и так далее ... Теперь, как я могу узнать, какой UIImageView был выбран пользователем одним касанием? Я думаю, я должен сделать это в touchSegan, но, как я уже сказал, я не знаю, как получить правильный UIImageView.

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

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 26 января 2010

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

0 голосов
/ 27 января 2010

SDK довольно гибкий; на самом деле существует множество способов сделать это:

Подкласс UIImageView, как tomute уже упоминалось. Затем вы будете реагировать на прикосновения вашего UIImageView в методах touchesBegan, touchesMoved и touchesEnded каждого объекта.

Если ваши UIImageViews не обрабатывают сенсорные события, они будут переданы в суперпредставление, где вы можете проверить суперпредставление, задав

if ([[touch view] isKindOfClass:[UIImageView class]]

тогда возможно

switch ([[touch view] tag])
case (1) {
…
break;
}
case (2) {
…
break;
}

Событие будет продолжаться до тех пор, пока что-то в цепочке не коснется касания.

Просмотр Обработка событий и цепочка респондента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...