UITableView отменить движение - PullRequest
       0

UITableView отменить движение

1 голос
/ 06 августа 2010

Я хочу, чтобы поведение UITableView было похоже на userInteractionEnabled == NO (таблица должна просто перестать перемещаться пользователем).Но я хочу иметь возможность активировать его, пока пользователь перемещает UITableView

Если я просто установил

[self.tableView setUserInteractionEnabled:NO];

Это поведение активируется после того, как пользователь перестает касаться.

Есть идеи, как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 09 августа 2010

Я узнал, как это сделать, не могу поверить, что пропустил это свойство:

[myTableView setScrollEnabled:NO];
0 голосов
/ 07 августа 2010

Вы можете создать подкласс UITableView и переопределить прикосновенияEnded: withEvent :.Этот метод получает удар, когда пользователь отрывает палец.Поскольку вы можете не захотеть отключать взаимодействие с пользователем, когда пользователь просто касается экрана, вы можете зафиксировать начальную точку касания и конечную точку касания.Из этих двух вы можете сравнить дельты Y, чтобы выяснить, сколько вы хотите, чтобы пользователь передвинул, прежде чем отключить взаимодействие с пользователем.Вот код, который поможет вам в этом.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  UITouch * touch = [touches anyObject];
  touchStartPoint = [touch locationInView:self];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
  UITouch * touch = [touches anyObject];
  CGPoint touchEndPoint = [touch locationInView:self];
  CGFloat deltaY = touchStartPoint.y - touchEndPoint.y;

  if (fabsf(deltaY) >= kMinimumYMoved) {
      self.userInteractionEnabled = NO;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...