Как определить прикосновение к определенному изображению из нескольких изображений в UIScrollView? - PullRequest
1 голос
/ 02 июня 2011

У меня есть несколько ImageViews в UIScrollView, и я хочу определить конкретный imageView, к которому я прикоснулся . Так что я мог сделать некоторые действия. (например, отображение оповещения с именем изображения).

Я видел несколько похожих постов, но у них не было правильного ответа. И некоторые ответы были сложными для меня, так как я довольно новичок в программировании для iPhone.

Было бы здорово, если кто-нибудь поможет с простым примером. : -)

мой код такой

- (void)viewDidLoad {   


imgScrollView.userInteractionEnabled =YES;

// load all the images from our bundle and add them to the scroll view
NSUInteger i;
for (i = 1; i <= 5; i++)
{
    NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", i];
    UIImage *image = [UIImage imageNamed:imageName];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

    // setup each frame to a default height and width
    CGRect rect = imageView.frame;
    rect.size.height = kHeight;
    rect.size.width = kWidth;
    imageView.frame = rect;
    imageView.tag = i;  

    [imgScrollView addSubview:imageView];

    [imageView release];
}


[self layoutImages];

[super viewDidLoad];
}

     -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
// WHAT CODE SHOULD I GIVE HERE ?????????? :-)

}

Ответы [ 3 ]

3 голосов
/ 02 июня 2011

Рекомендую просмотреть документацию и примеры для UIGestureRecognizer .Существует также более объяснительное Руководство по обработке событий .

. Здесь вы узнаете, как добавить распознаватели жестов в определенные виды (например, в ваше изображение), которые могут обрабатывать касания, касания и жесты с несколькими касаниями, как вам нравится..

1 голос
/ 02 июня 2011

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

0 голосов
/ 01 октября 2013

Свяжите уникальное значение тега с каждым экземпляром UIImageView:

В viewDidLoad или где инициализируются ваши изображения:

myImageView1.tag = 1;
myImageView2.tag = 2;
myImageView3.tag = 3;

тогда попробуйте жест или что-то вроде:

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event       
{
UITouch *touch = [[event allTouches] anyObject];
int t = [touch view].tag;
UIImageView *imageView = (UIImageView *) [self.view  viewWithTag:t];
//your logic here since you have recognized the imageview on which user touched
}

не пробовал что-то подобное раньше, но, вероятно, должно работать.

...