2014-11-25 3 views
0

Я пытаюсь создать таблицу с использованием uitableview на iOS 7 и 8. таблица похожа на изображение нижеiOS: Как создать таблицу с несколькими столбцами

table

Я пытался сделать это с помощью UITableViewCell, но метки не хорошо приспособились в Iphone и IPad .. плюс автоматическая раскладка была боль в обращении.

Мой вопрос в том, что я могу это сделать даже с uicollectionView .. и как в деталях, пожалуйста.

Любая помощь будет оценена

+0

Как вы размещаете этикетки? Не могли бы вы разместить какой-то код? –

+1

Лучший способ сделать это - использовать пользовательскую ячейку таблицы. –

+2

Я вижу, что вы получаете много ответов, но я подозреваю, что существует проблема с тем, как вы выравниваете свои ярлыки, которые можно восстановить с помощью простого исправления. Я бы рекомендовал код публикации, прежде чем исследовать различные проспекты ... –

ответ

2

как пример. Obvisously Есть много вещей, которые вы должны настроить, но я думаю, что это хорошая точка старта:

.h файл:

#import <UIKit/UIKit.h> 

@interface OKCustomFiveLabelsTableViewCell : UITableViewCell 

// Here is the place to send through the tableViewDelegate all info about the cell. 

@property (nonatomic, strong) NSDictionary *dictInfo; 

@end 

.m файл

#import "OKCustomFiveLabelsTableViewCell.h" 

#define FIRST_LABEL_PERCENT 0.15 
#define SECOND_LABEL_PERCENT 0.3 
#define THIRD_LABEL_PERCENT 0.2 
#define FOURTH_LABEL_PERCENT 0.2 
#define FIFTH_LABEL_PERCENT 0.15 

//the sum of this five must be 1 

@interface OKCustomFiveLabelsTableViewCell() 

@property (nonatomic, strong) UILabel *firstLabel; 
@property (nonatomic, strong) UILabel *secondLabel; 
@property (nonatomic, strong) UILabel *thirdLabel; 
@property (nonatomic, strong) UILabel *fourthLabel; 
@property (nonatomic, strong) UILabel *fifthLabel; 

@end 


@implementation OKCustomFiveLabelsTableViewCell 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
if (self) { 

    CGFloat width = [UIScreen mainScreen].bounds.size.width; 

    self.firstLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 5, width *FIRST_LABEL_PERCENT, 25)]; 

    //Configure here your label 
    // It´s good idea Use: NSTextAlignamentCenter 

    [self.contentView addSubview:self.firstLabel]; 

    self.secondLabel= [[UILabel alloc] initWithFrame:CGRectMake(width *FIRST_LABEL_PERCENT, 5, width *SECOND_LABEL_PERCENT, 25)]; 

    //Configure here your label 

    [self.contentView addSubview:self.secondLabel]; 

    self.thirdLabel= [[UILabel alloc] initWithFrame:CGRectMake(width *(FIRST_LABEL_PERCENT + SECOND_LABEL_PERCENT), 5, width *THIRD_LABEL_PERCENT, 25)]; 

    //Configure here your label 

    [self.contentView addSubview:self.thirdLabel]; 

    self.fourthLabel= [[UILabel alloc] initWithFrame:CGRectMake(width *(FIRST_LABEL_PERCENT + SECOND_LABEL_PERCENT+THIRD_LABEL_PERCENT), 5, width *FOURTH_LABEL_PERCENT, 25)]; 

    //Configure here your label 

    [self.contentView addSubview:self.fourthLabel]; 


    self.fifthLabel= [[UILabel alloc] initWithFrame:CGRectMake(width *(FIRST_LABEL_PERCENT + SECOND_LABEL_PERCENT+THIRD_LABEL_PERCENT+FOURTH_LABEL_PERCENT), 5, width *FIFTH_LABEL_PERCENT, 25)]; 

    //Configure here your label 

    [self.contentView addSubview:self.fifthLabel]; 


} 
return self; 
} 

-(void)setDictInfo:(NSDictionary *)dictInfo 
{ 
self.fifthLabel.text = [dictInfo valueForKey:@"identyNumber"]; 
self.secondLabel.text = [dictInfo valueForKey:@"name"]; 
self.thirdLabel.text = [dictInfo valueForKey:@"amount"]; 
self.fourthLabel.text = [dictInfo valueForKey:@"time"]; 
self.fifthLabel.text = [dictInfo valueForKey:@"type"]; 

_dictInfo = dictInfo; 
} 

@end 

Вы, возможно, потребуется написать методы для если вы хотите работать в портретном и ландшафтном дизайне. (Повернуть). Но это тот же код в методах вращения.

+0

это awsome ответ .. действительно спасибо –

+0

хотя setDictInfo .. никогда не назовешь –

+1

Это сеттер, вызывается, когда в вашем представлении делегат контроллера вы ставите: cell.dictInfo = ..... –

1

способ сделать множественный столбец таблицы будет иметь:

1) различное UICollectionViewCell для каждого элемента.

2) Отдельный вид заголовков, чтобы не забивать источник данных с информацией, не связанной с данными.

3) Тщательное управление классами ячеек и позиционирование в каждом разделе, где каждый раздел является строкой, и каждая ячейка является записью столбца.

0

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

Вы можете следить за this tutorial, который описывает рисунок действительно хорошо.

Смежные вопросы