Подтвердить что ты не робот

Событие прокрутки UITableView

Я хочу определить, была ли прокручена точка просмотра mytable, я пробовал все события касания, подобные этому:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
  {
    [super touchesBegan:touches withEvent:event];
    //my code
  }

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

Есть ли способ обнаружить событие прокрутки UITableView?

4b9b3361

Ответ 1

Если вы реализуете протокол UITableViewDelegate, вы также можете реализовать один из методов UIScrollViewDelegate:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

или же

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

Например, если у вас есть свойство с именем tableView:

// ... setting up the table view here ...
self.tableView.delegate = self;
// ...

// Somewhere in your implementation file:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    NSLog(@"Will begin dragging");
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog(@"Did Scroll");
}

Это связано с тем, что UITableViewDelegate соответствует UIScrollViewDelegate, что можно увидеть в документации или в заголовочном файле.

Ответ 2

Если у вас есть несколько табличных представлений по запросу Solidus, вы можете отбросить scrollview из обратного вызова в tableview, поскольку UITableView получен из UIScrollView, а затем сравнивается с табличными представлениями, чтобы найти исходное табличное представление.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {    
        UITableView* fromTableView = (UITableView*) scrollView;
        UITableView* targetTableView = nil;
        if (fromTableView == self.leftTable) {
            targetTableView = self.leftTable;
        } else {
            targetTableView = self.rightTable;
        }
...
}

Ответ 3

Это методы из UITableViewDelegate для Swift 3 для обнаружения, когда прокрутка или прокрутка UITableView:

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {

}

func scrollViewDidScroll(_ scrollView: UIScrollView) {

}