Как отобразить несколько столбцов в UITableView? - PullRequest
13 голосов
/ 18 мая 2010

Я хочу отобразить несколько столбцов в UITableView.

Например:

TableView

   FName        LName    Age

   -----        -----    ---

   Abby         Michale   34   

Ответы [ 6 ]

19 голосов
/ 25 марта 2015

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

Пожалуйста, проверьте этот удивительный пост для полного и актуального решения: http://www.brightec.co.uk/blog/uicollectionview-using-horizontal-and-vertical-scrolling-sticky-rows-and-columns

Результат будет таким:

enter image description here

12 голосов
/ 18 мая 2010

Вы можете определить пользовательскую ячейку в IB, которая будет содержать 3 метки и в функции:

    - (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

         static NSString *DetailCellIdentifier = @"DetailCell";

         UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:DetailCellIdentifier];

         if (cell == nil) {
            NSArray *cellObjects = [[NSBundle mainBundle] loadNibNamed:@"DetailCell" owner:self options:nil];
            cell = (UITableViewCell*) [cellObjects objectAtIndex:0];
        }

        // setup your cell
     }

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

        label = (UILabel *)[cell viewWithTag:NAME_TAG];
        label.text = myObject.name; 

и повторите это с другими 2 метками. Тег представляет собой уникальный номер.

Поместите этот код вместо // настройки комментария к ячейке

3 голосов
/ 06 марта 2012

Я создал UIGridView . Я считаю, что ваша проблема может быть решена с помощью той же техники.

Вы можете узнать исходный код UIGridView . Код действительно короткий.

0 голосов
/ 09 января 2018

Немного опоздал на вечеринку, но мы открыли наш полнофункциональный компонент таблицы:

https://github.com/flexicious/iOSDataGrid

Некоторые скриншоты:

http://www.ioscomponents.com/Home/IOSDataGrid

Не стесняйтесь использовать!

0 голосов
/ 04 февраля 2012

добавить три метки в качестве подвидов в содержимое ячейки uitableview. Затем присвоить ей соответствующие значения например:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];


}

//frame should be set accordingly(means should be framed accordingly).

UILabel *l1=[[UILabel alloc]initWithFrame:CGRectMake(5, 5, 100,100)];

UILabel *l2=[[UILabel alloc]initWithFrame:CGRectMake(110,10,100,80)];
UILabel *l3=[[UILabel alloc]initWithFrame:CGRectMake(115,60,100,50)];

[cell.contentView addSubview:l1];
[cell.contentView addSubview:l2];
[cell.contentView addSubview:l3];
 return cell;
 }
0 голосов
/ 18 мая 2010

Создайте пользовательский подкласс UIView, содержащий, скажем, три UILabel элемента в качестве подпредставлений.Затем установите для свойства contentView ячейки это пользовательское представление.

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