Подтвердить что ты не робот

Как сделать горизонтальное представление таблицы пользовательского интерфейса на iPhone?

Обычно 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....... Как я могу это сделать? спасибо.

4b9b3361

Ответ 2

Используйте 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);
...

Ответ 3

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

Ответ 4

если вы хотите использовать 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 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;
}

Ответ 5

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

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

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

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

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