iPhone - выбрав ячейку переместиться в начало списка пользователей - PullRequest
5 голосов
/ 18 марта 2011

Эй, ребята, я искал эту проблему, и я не верю, что смог найти ответ.У меня есть таблица пользовательских ячеек, при нажатии которой выбранная ячейка выдвигает новую ячейку с информацией.Мне было интересно, есть ли у кого-нибудь представление о том, как поместить выбранную ячейку в верхнюю часть uitableview или заставить ее заполнить весь табличный вид.

Мой uitableview занимает только половину экрана, и мне бы хотелоськогда ячейка выбрана так, что она занимает только половину экрана, а пользователь все еще может прокручивать ячейку (если это имеет смысл)?

Любые предложения приветствуются, это было несколько сложночтобы описать то, что я ищу, поэтому, если кому-то нужны разъяснения, не стесняйтесь спрашивать меня.

Спасибо!

Ответы [ 4 ]

13 голосов
/ 22 марта 2011

в cellForRowAtIndexPath, вам нужно поместить это после того, как вы создали свою ячейку

    [tableView scrollToRowAtIndexPath:selectedCellIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

Это также помогло мне с настраиваемой высотой ячеек.

0 голосов
/ 18 марта 2011

Чтобы переместить выбранную ячейку в верхнюю часть таблицы, вы можете сохранить индекс выбранной ячейки в переменной экземпляра в didSelectRowAtIndexPath, а затем вызвать [tableView reloadData].

В tableView вашего источника данных: cellForRowAtIndexPath: метод вы должны убедиться, что выбранная ячейка возвращается для индекса 0, а все ячейки до выбранной ячейки возвращаются для их индекса + 1.

0 голосов
/ 18 марта 2011

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

-(void)moveIndexPathToTop:(NSIndexPath *)pathToMove
{
     [myTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:pathToMove] withRowAnimation:UITableViewRowAnimationFade];
     NSIndexPath *firstRow = [NSIndexPath indexPathForRow:0 inSection:0];
     [myTable insertRowsAtIndexPaths:[NSArray arrayWithObject:firstRow] withRowAnimation:UITableViewRowAnimationFade];
}

Это переместит строку так далеко, как сохраняется UITableView.Конечно, вам также нужно будет соответствовать новому порядку в источнике данных.(Как изменение порядка в вашем массиве данных)

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

0 голосов
/ 18 марта 2011

В моем приложении есть несколько ячеек, которые увеличиваются в размерах при нажатии;и только 1 ячейка может быть расширена за один раз.Я в основном отслеживаю текущий выбранный indexPath, а затем в heightForRowAtIndexPath: проверяю, является ли это выбранной продажей;если это, я возвращаю большую высоту.

Затем в didSelectRowAtIndexPath: я просто устанавливаю текущий indexPath и перезагружаю как новую, так и предыдущую ячейку.Это похоже на то, что вы ищете ... это сработает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...