Как сделать горизонтальный вид таблицы интерфейса на iPhone? - PullRequest
20 голосов
/ 14 мая 2010

Обычно UITableView выглядит примерно так:

[   cell    1   ]
[   cell    2   ]
[   cell    3   ]
[   cell    4   ]

Но я хочу сделать свой собственный UITableView так:

   |    |   |   |
   | c  | c | c |
   | e  | e | e |
   | l  | l | l |
   | l  | l | l |
   |    |   |   |
   | 1  | 2 | 3 |
   |    |   |   |

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

Ответы [ 9 ]

22 голосов
/ 10 апреля 2011

Используйте UIViewController с UIView, добавьте UITableView вашей таблицы в представление контроллера, тогда с точки зрения кода это всего одна строка:

- (void)viewDidLoad
{

    [super viewDidLoad];

    // horizontal table
    // -90 degrees rotation will move top of your tableview to the left
    myTableView.transform = CGAffineTransformMakeRotation(-M_PI_2);
    //Just so your table is not at a random place in your view
    myTableView.frame = CGRectMake(0,0, myTableView.frame.size.width, myTableView.frame.size.height);
...
13 голосов
/ 18 мая 2010

Здесь есть проект, который также может быть полезен, http://github.com/TheVole/HorizontalTable

4 голосов
/ 26 марта 2011

EasyTableView может делать горизонтальные таблицы

2 голосов
/ 23 июня 2013

Если вы хотите использовать textLabel, вы можете использовать это:

- (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];
    }


    cell.textLabel.frame = CGRectMake(0,0, cell.frame.size.width , cell.frame.size.width); // it's very important!!!You must set frame of textLabel, because you can have a problems with displaying you table;

    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    CGAffineTransform trans = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI_2);
    cell.textLabel.transform = trans;  // rotating you caption;
    cell.textLabel.text = @"tra-tata";
    cell.textLabel.textAlignment = UITextAlignmentCenter;

    return cell;
}
1 голос
/ 14 мая 2010

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

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

В это представление прокрутки вы хотите поместить набор ячеек - я бы подкласс UIView, а не пытался заставить UITableViewCell играть хорошо с вашим Scroll View для них.

Это всего лишь простой пример того, как подойти к проблеме. Сколько функций UITableView вы собираетесь воспроизвести?

0 голосов
/ 30 июля 2013

Я рекомендую EasyTableView и PSTCollectionView , это отличный горизонтальный проект с табличным представлением на github, который много смотрят.

0 голосов
/ 24 мая 2010

Не так уж сложно создать что-то похожее на UITableView в своем коде. Если вы можете найти его, в сеансе Scroll Views на уровне эксперта WWDC09 был какой-то потрясающий пример кода.

0 голосов
/ 17 мая 2010

То, что у вас есть, это просто стандартная таблица, отображаемая в портретной ориентации, но вы держите телефон в ландшафтном режиме. Поверните содержимое каждой ячейки на 90 градусов и ваше там. И обязательно игнорируйте любые уведомления об изменении ориентации.

0 голосов
/ 14 мая 2010

Кроме подклассов UIScrollView, вы можете попробовать применить поворот на 90 градусов к существующему UITableView. Однако я понятия не имею, как это повлияет на прокрутку, и вам придется специализировать виды ячеек, чтобы «развернуть».

Я думаю, что подкласс UIScrollView - лучший вариант. Используйте класс UITableView в качестве руководства, когда речь идет о делегате, источнике данных и многократно используемых ячейках.

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