Я пытаюсь создать простой UIScrollView с пейджингом для горизонтальной прокрутки между 3-мя изображениями. Сложная часть заключается в том, что я хотел бы, чтобы каждое изображение было доступно для кликов и захватывало событие click.UIScrollView не прокручивается при добавлении UIButtons в качестве подзаголовков
Моя техника состоит в том, чтобы создать 3 UIButtons, каждая из которых состоит из UIImage. дать каждой кнопке тег и установить действие.
Проблема: я могу поймать событие щелчка - НО НОТА это прокручивается!
Вот мой код:
- (void) viewDidAppear:(BOOL)animated {
_imageArray = [[NSArray alloc] initWithObjects:@"content_01.png", @"content_02.png", @"content_03.png", nil];
for (int i = 0; i < [_imageArray count]; i++) {
//We'll create an imageView object in every 'page' of our scrollView.
CGRect frame;
frame.origin.x = _contentScrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = _contentScrollView.frame.size;
//
//get the image to use, however you want
UIImage* image = [UIImage imageNamed:[_imageArray objectAtIndex:i]];
UIButton* button = [[UIButton alloc] initWithFrame:frame];
//set the button states you want the image to show up for
[button setImage:image forState:UIControlStateNormal];
[button setImage:image forState:UIControlStateHighlighted];
//create the touch event target, i am calling the 'productImagePressed' method
[button addTarget:self action:@selector(imagePressed:)
forControlEvents:UIControlEventTouchUpInside];
//i set the tag to the image #, i was looking though an array of them
button.tag = i;
[_contentScrollView addSubview:button];
}
//Set the content size of our scrollview according to the total width of our imageView objects.
_contentScrollView.contentSize = CGSizeMake(_contentScrollView.frame.size.width * [_imageArray count], _contentScrollView.frame.size.height);
_contentScrollView.backgroundColor = [ENGAppDelegate backgroundColor];
_contentScrollView.delegate = self;
}
Вы прошли через свой код, чтобы убедиться, что _contentScrollView.contentSize - это то, что вы ожидаете? Я думаю, что _contentScrollView.frame.size не вычисляется должным образом в этот момент, поэтому вы не получите хорошего значения. – HalR
Я проверил и рассчитан правильно! позвольте мне сказать следующее: если я запустил кнопку без рамки (так картинки не отображаются), то я вижу, что она прокручивается! – Shvalb
Возможно ли, что если я установил рамку кнопки точно такого размера, как ScrollView, тогда она полностью блокирует свиток, поэтому я не получаю событие прокрутки? – Shvalb