iPad: возможно ли отображение таблицы с несколькими текущими столбцами? - PullRequest
2 голосов
/ 10 декабря 2010

Я искал это онлайн и ничего не нашел.Возможно ли на iPad вместо того, чтобы вытекать с экрана, элементы «перетекать» в новый столбец справа и т. Д.* Хочу:

--------------  top of screen
01 |06 |11
02 |07 |12
03 |08 |13     --> Columns grow to the right
04 |09 |
05 |10 |
-------------- bottom of screen

Ответы [ 2 ]

2 голосов
/ 10 декабря 2010

Мысленный эксперимент: используйте три представления таблицы, но используйте один и тот же источник данных / делегат. Подключите его так, чтобы всякий раз, когда прокручивался один вид (т. Е. Через –scrollViewDidScroll:), вы также вручную прокручивали другие виды с помощью -setContentOffset в соответствующую позицию. Вы должны остерегаться возможных звонков. Я не могу гарантировать, что это сработает, но это настолько близко, насколько вы можете понять, о чем я могу думать.

Вы также можете добавить дополнительные строки сверху и снизу для определенных видов, если вы хотите, чтобы крайний левый вид имел возможность прокручиваться вниз, или крайний правый - для прокрутки к верху.

Редактировать: По большей части, это так просто, как кажется. Я только что попробовал это и не было так уж плохо. Однако есть некоторые небольшие причуды, о которых вам нужно позаботиться, включая круговые вызовы и замедление просмотра прокрутки.

Для циклических звонков, о которых я упоминал ранее, я справился с этим, используя следующий код:

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    tableView1.delegate = nil;
    tableView2.delegate = nil;
    tableView3.delegate = nil;
    scrollView.delegate = self;
}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    tableView1.delegate = self;
    tableView2.delegate = self;
    tableView3.delegate = self;
}

Что касается замедления после этого, то это не так сильно, что другие виды не будут замедляться вместе с ними, но они ведут себя немного шатко, если вы коснетесь одного из них, пока они замедляются. В этом случае я не пробовал, чтобы посмотреть, сработает ли он на 100%, но вы должны попытаться кодировать с здесь , чтобы остановить замедление в его треках, когда вы начнете перетаскивать его снова.

2 голосов
/ 10 декабря 2010

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

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