Предполагая, что я понимаю ваш вопрос, вы хотите, чтобы 3 значения из трех разных массивов отображались в строке.
Для этого вам нужно создать новый UITableViewCell класс.
Выберите новый файл в своем проекте, выберите класс Objective-C и, наконец, выберите подкласс UITableViewCell . Нажмите следующую кнопку и назовите свой UITableViewCell .
альтернативный текст http://www.thoughtblog.com/images/UITableViewClass.png
Например, у меня есть класс UITableViewCell с именем RosterTableViewCell. Он имеет три (3) метки. В файле .h создайте 3 UILabels и реализуйте три (3) свойства.
@interface RosterTableViewCell : UITableViewCell {
UILabel *playerName;
UILabel *jerseyNumber;
UILabel *position;
}
@property (nonatomic,retain) UILabel *playerName;
@property (nonatomic,retain) UILabel *jerseyNumber;
@property (nonatomic,retain) UILabel *position;
-(void)rosterPlayer:(NSString*)player JerseyNumber:(NSString*)jerseyNumber PlayerPosition:(NSString*)playerPosition;
@end
Теперь в файле .m нам нужно создать UILabels и расположить их там, где мы хотим.
@implementation RosterTableViewCell
@synthesize playerName;
@synthesize jerseyNumber;
@synthesize position;
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
playerName = [[UILabel alloc]initWithFrame:CGRectMake(10,10,200,30)];
[playerName setTextColor:[UIColor whiteColor]];
[playerName setFont:[UIFont systemFontOfSize:19]];
[[self contentView] addSubview:playerName];
jerseyNumber = [[UILabel alloc]initWithFrame:CGRectMake(240,5,40,20)];
[jerseyNumber setTextColor:[UIColor whiteColor]];
[jerseyNumber setFont:[UIFont systemFontOfSize:16]];
[[self contentView] addSubview:jerseyNumber];
position = [[UILabel alloc]initWithFrame:CGRectMake(240,25,40,20)];
[position setTextColor:[UIColor whiteColor]];
[position setFont:[UIFont systemFontOfSize:16]];
[[self contentView] addSubview:position];
}
return self;
}
- (void)rosterPlayer:(NSString*)player JerseyNumber:(NSString*)jerseyNumber PlayerPosition:(NSString*)playerPosition {
[playerName setText:player];
[playerName setNeedsDisplay];
[jerseyNumber setText: jerseyNumber];
[jerseyNumber setNeedsDisplay];
[position setText: playerPosition];
[position setNeedsDisplay];
}
Теперь в вашем коде, который создает TableView, вам нужно создать TableViewCell. Не забудьте импортировать класс, который мы создали выше, чтобы компилятор мог ссылаться на него.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
RosterTableViewCell *cell = (RosterTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"RosterTableViewCell"];
if (cell == nil)
cell = [[[RosterTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"RosterTableViewCell"] autorelease];
[cell rosterPlayer:[myArrayOfDealDetails objectAtIndex:[indexPath row]] JerseyNumber:[myArrayOfDealDetails2 objectAtIndex:[indexPath row]] PlayerPosition:[myArrayOfDealDetails3 objectAtIndex:[indexPath row]]];
return cell;
}
Я использовал три образца массива, которые вы передадите в функцию rosterPlayer. Это может показаться большим количеством кода, но большая часть его просто позиционируется.