Ответ на этот вопрос, вероятно, прямо у меня под носом, но я его не вижу. Может быть, кто-то здесь может помочь.
У меня есть scrollView, который позволяет вертикальную прокрутку. Я настроил это:
[clefScrollView addSubview:clefView];
[clefScrollView setContentSize:CGSizeMake(clefView.frame.size.width, clefView.frame.size.height)];
clefScrollView.showsVerticalScrollIndicator = YES;
clefScrollView.showsHorizontalScrollIndicator = NO;
clefScrollView.delegate = self;
У меня есть следующие методы, включенные в тот же файл, для поддержки протокола UIScrollViewDelegate:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"%f %f", scrollView.contentOffset.y, scrollView.contentSize.height);
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidEndDecelerating");
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidEndScrollingAnimation");
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidScroll");
}
Кроме того, файл .h для моего класса включает протокол:
@interface ClefNotesViewController : UIViewController <UIActionSheetDelegate,UIScrollViewDelegate,DoneWithVCDelegate> {
Проблема в том, что, несмотря ни на что, следующие два никогда не называются:
-scrollViewDidEndDecelerating
-scrollViewDidScroll
Два других метода вызывают в ответ на разные события. Учитывая, что два метода протокола вызывают, я предполагаю, что я правильно установил делегата на себя. Итак, в чем проблема?
Спасибо!
Обновление: я обнаружил проблему, хотя до сих пор не понял, как ее решить. Мой класс охватывает два файла. Во втором файле другой scrollView реализует
-scrollViewDidEndDecelerating
-scrollViewDidScroll
Вопрос в том, как определить два разных набора методов для двух разных UIScrollViews в одном классе?
Я мог бы попытаться обработать два scrollView с одинаковыми методами делегатов, но это ужасно, так как я не смогу сохранить каждый набор делегатов с файлом scrollView. Я мог бы также разделить мой класс. Есть ли другой способ?