iOS Scrollview обнаруживает прокрутку - PullRequest
2 голосов
/ 16 января 2012

Я прочитал все предыдущие посты на эту тему, но до сих пор не могу определить, когда пользователь прокручивает это приложение для iPad ...

Мой .h:

#import <UIKit/UIKit.h>

@interface MyApp_ViewController : UIViewController <UIScrollViewDelegate>
{

}
@property (weak, nonatomic) IBOutlet UIButton *otherButton;
@property (weak, nonatomic) IBOutlet UIScrollView *otherScrollView;
@property (weak, nonatomic) IBOutlet UITextView *txtViewHTML;

-(void)k_RootViewPrint:(NSString *) data;

-(void)ActionEventForButton: (id) sender;

@end

мой .m:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{

    NSLog(@"...");
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"2222");
}
- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event 
{
    NSLog(@"touches ended BS");
}

Но никто из них не работает? Я уверен, что это что-то простое, но я сделал все, что могу придумать, и до сих пор ничего. Любое руководство в правильном направлении будет высоко ценится!

Ответы [ 4 ]

2 голосов
/ 16 января 2012

Если он не входит в систему scrollViewDidScroll:, то делегат представления прокрутки не настроен на контроллер представления.

Вы можете проверить это в отладчике. После того, как ваше приложение запустилось, сделайте паузу в отладчике и выполните эту команду:

po [[(id)UIApp keyWindow] recursiveDescription]

Просмотрите вывод, чтобы найти адрес вашего UIScrollView. Там будет строка, которая говорит что-то вроде <UIScrollView: 0xc894d60 ...>. Возьмите адрес (0xc894d60 в моем примере) и используйте его в этой команде отладчика:

po [0xc894d60 delegate]

Если он печатает что-то вроде <MyApp_ViewController: 0x6a7f6c0>, ваш делегат настроен правильно. Если выводится «Не удается распечатать описание объекта NIL.», Значит, вы не установили делегат представления прокрутки. Если он печатает что-то еще, вы неправильно установили делегат представления прокрутки.

1 голос
/ 16 января 2012

Для тех, кто может быть потерян, как я, вот решение в коде:

- (void)viewDidLoad
{
[super viewDidLoad];
self.otherScrollView.delegate = self; // This is the KEY
1 голос
/ 16 января 2012

Вы установили делегирование в UIScrollView на свой ViewController?

0 голосов
/ 16 января 2012

Проверьте, установлен ли вы делегат или нет, а затем попробуйте

Попробуйте реализовать `

- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event 
{   
    // If not dragging, send event to next responder
    if (!self.dragging) 
        [self.nextResponder touchesEnded: touches withEvent:event]; 
    else
        [super touchesEnded: touches withEvent: event];
}
`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...