Как прокрутить UITableView в определенную позицию

Как прокрутить ячейку таблицы до определенной позиции? У меня есть таблица, которая показывает 3 строки (в зависимости от высоты). что я хочу, если я нажимаю на 1-ю строку, а в соответствии с высотой таблицы 1-я строка должна прокручиваться и получать новую позицию (в центре) и одну и ту же для других строк. Я попробовал contenOffset, но не работал.

EDITED:

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

Благодаря..

он должен работать с использованием - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated используя его следующим образом:

 NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; [yourTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

atScrollPosition может принимать любое из этих значений:

 typedef enum { UITableViewScrollPositionNone, UITableViewScrollPositionTop, UITableViewScrollPositionMiddle, UITableViewScrollPositionBottom } UITableViewScrollPosition; 

Я надеюсь, это поможет вам

ура

 [tableview scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO]; 

Это приведет к отображению таблицы в первую строку.

наконец, я нашел … это будет хорошо работать, когда таблица отображает только 3 строки … если строки больше изменений, соответственно …

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } // Customize the number of rows in the table view. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 30; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } // Configure the cell. cell.textLabel.text =[NSString stringWithFormat:@"Hello roe no. %d",[indexPath row]]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell * theCell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath]; CGPoint tableViewCenter = [tableView contentOffset]; tableViewCenter.y += myTable.frame.size.height/2; [tableView setContentOffset:CGPointMake(0,theCell.center.y-65) animated:YES]; [tableView reloadData]; } 

Используйте [tableView scrollToRowAtIndexPath:indexPath atScrollPosition:scrollPosition animated:YES]; Прокручивает приемник до тех пор, пока строка, указанная указательным путем, не будет находиться в определенном месте на экране.

А также

 scrollToNearestSelectedRowAtScrollPosition:animated: 

Прокручивает представление таблицы так, чтобы выбранная строка, ближайшая к указанной позиции в представлении таблицы, находилась в этой позиции.

Быстрая версия:

 let indexPath:NSIndexPath = NSIndexPath(forRow: 0, inSection: 0) self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.None, animated: true) 

Enum: это доступные позиции прокрутки таблицыView – здесь для справки. Вам не нужно включать этот раздел в свой код.

 public enum UITableViewScrollPosition : Int { case None case Top case Middle case Bottom } 

DidSelectRow:

 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let theCell:UITableViewCell? = tableView.cellForRowAtIndexPath(indexPath) if let theCell = theCell { var tableViewCenter:CGPoint = tableView.contentOffset tableViewCenter.y += tableView.frame.size.height/2 tableView.contentOffset = CGPointMake(0, theCell.center.y-65) tableView.reloadData() } } 

Стоит отметить, что если вы используете подход setContentOffset , это может привести к тому, что представление в виде таблицы / коллекции немного setContentOffset . Я бы честно попытался пойти по этому пути. Рекомендация заключается в том, чтобы использовать методы делегата прокрутки, которые вы даете бесплатно.

Просто одна строка кода:

 self.tblViewMessages.scrollToRow(at: IndexPath.init(row: arrayChat.count-1, section: 0), at: .bottom, animated: isAnimeted) 
  • Какова стоимость использования автореферата в cocoa?
  • Несоответствие UUID обнаружено в загруженной библиотеке
  • Как загрузить локальный html-файл в UIWebView
  • Можно ли перепроектировать мое приложение iPhone?
  • как увеличить размер шрифта в UIWebView
  • iPhone - Что такое reuseIdentifiers (UITableViewCell)?
  • iOS 5 не позволяет сохранять загруженные данные в папке «Документы»?
  • Как программно изменить оттенок UIImage?
  • Создайте эскиз или изображение AVPlayer в текущее время
  • как правильно использовать insertRowsAtIndexPaths?
  • iTunes Connect API
  • Давайте будем гением компьютера.