Как узнать, выполняется ли прокрутка UITableView вручную (вручную) или программно?

Я использую UITableView в своем коде, и было бы неплохо узнать, вручную ли пользователь прокрутил UITableView, или это было сделано программно. Есть ли способ узнать это?

Ответ 1

UITableView является подклассом UIScrollView. поэтому вы можете использовать этот

if (!tableView.isDragging && !tableView.isDecelerating)
{
   // the table is *not* being scrolled
}

это работает. Я использую его в одном из моих приложений.

Ответ 2

Вы можете реализовать следующий метод UIScrollViewDelegate, чтобы узнать про прокрутку представления в таблице:

- (void)scrollViewWillBeginDragging:(UIScrollView *)activeScrollView

Не забудьте включить это тоже...

@interface YourViewController : UIViewController <UIScrollViewDelegate>

Надеюсь, это поможет, приветствует:)

Ответ 3

Вы можете активировать распознаватель крана, обнаруживая все зафиксированные касания.

Если прокрутка tableview прокручивается, но при этом не задействованы тангенции, она должна ее покрывать.

Ответ 4

Лучший метод, который я нашел, заключается в использовании свойства isTracking, а не isDragging.

if tableView.isTracking && tableView.isDecelerating {
    // Table was scrolled by user.
}