2013-08-22 2 views
0

Я добавил ICarousel в свой проект IOS, и он отлично работал. Я мог прокручивать фотографии.ICarousel в UIScrollView

Тогда мой взгляд содержит другие данные. Поэтому мне нужно было добавить UISCrollView, охватывающий все мои взгляды. Итак, теперь у меня есть некоторые элементы (метки, textViews и UIVIew для ICarousel) в моем ScrollView.

ScrollView отлично работает. Но теперь ICarousel не переключает изображения. Картинки загружены (я вижу первый и часть второго), но карусель больше не работает.

У кого-то была такая же проблема? Как его решить?

Edit:

После @Wain советов, я попытался это:

- (void)viewDidLoad 
{ 
    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)]; 
    [self.view addGestureRecognizer:panRecognizer]; 

    panRecognizer.delegate = self; 
} 
- (void)pan:(id)sender { 
    NSLog(@"Pan"); 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 
    return YES; 
} 

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

Где я ошибаюсь?

+1

Знаете ли вы, что iCarousel использует 'UIGestureRecognizers' или' touchhesBegan'? –

+0

Кажется, это используется здесь: https://github.com/nicklockwood/iCarousel/blob/master/iCarousel/iCarousel.m#L1967 –

ответ

1

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

Не знаете, почему ваш вид прокрутки охватывает все, но вы должны иметь возможность сделать ваш контроллер делегатом жестов и реализовать gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:, чтобы они могли распознавать одновременно.


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

iCarousel немного отличается, поскольку он не делает публичный доступ доступным, поэтому, если настройка делегата в представлении прокрутки не работает, вы можете отредактировать карусель (который устанавливает себя как делегат) для реализации метода делегата ,

+0

Я думаю, что это может быть решение. Я что-то пробовал, но это не работает. Я редактирую свой вопрос. Спасибо –

+0

Какие getstures были переданы как 'otherGestureRecognizer'? Вы пытались добавить себя в качестве делегата других жестов (например, жестов в режиме просмотра прокрутки и жест карусели)? – Wain

+0

Кажется, что 'otherGestureRecognizer' всегда пуст. Простите, что я новичок в разработке ios, есть ли у вас пример добавления делегата других жестов? –