2013-10-01 2 views
0

У меня есть пользовательский подкласс UIView Leaderboard, который сам содержит табличную таблицу tblLeaderboard. Интерфейс был создан с помощью xib. Кроме того, у меня есть подкласс UITableViewCell LeaderboardCell, который также имеет xib. У меня проблема с записью ячейки в виде таблицы.iOS: подклассы UITableViewCell с nib, в подкласс UIView (не просматривать)

Вот что я пытался, первый я зарегистрировал перо с Tableview:

-(id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 
    if (self) 
    { 
     leaderInfo = [NSMutableArray array]; 
     tblLeaderboard.dataSource=self; 
      [tblLeaderboard registerNib:[UINib nibWithNibName:@"LeaderboardCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"leaderboardCell"]; 

    } 
    return self; 
} 

Тогда при инициализации ячейки у меня есть:

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

    static NSString *CellIdentifier = @"leaderboardCell"; 

    LeaderboardCell *cell = [tableView 
          dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[LeaderboardCell alloc] 
       initWithStyle:UITableViewCellStyleDefault 
       reuseIdentifier:CellIdentifier]; 
    } 

//ADDED THIS IN CASE DEFAULT CELL WAS LOADED 
cell.textLabel.text = [[leaderInfo objectAtIndex:indexPath.row] objectForKey:@"name" ]; 
    cell.name.text = [[leaderInfo objectAtIndex:indexPath.row] objectForKey:@"name"];   
    cell.score.text = [[[leaderInfo objectAtIndex:indexPath.row] objectForKey:@"score"] stringValue]; 

    return cell; 
} 

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

Я не уверен, что у меня возникают проблемы с использованием UIView, а не ViewController для управления моим UITableView?

ответ

0

Я действительно не имею много опыта с xibs, но в моем старом проекте я сделал это так:

static NSString *leaderBoardIdentifier = @"leaderboardCell"; //cell identifier same name as identifier in xib cell's attribute inspector 
    LeaderboardCell *cell = (LeaderboardCell *)[tableView dequeueReusableCellWithIdentifier:leaderBoardIdentifier]; 

    if (cell == nil) 
    { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:leaderBoardIdentifier owner:self options:nil]; 
     cell = [nib objectAtIndex:0]; 

    } 

У меня есть файл XIb моей ячейки с ч/м файлами. В моем .h я только что подключил элементы из xib.

initWithStyle и setВыбранные методы в классе ячеек содержат в них код по умолчанию.

+0

Когда я пытаюсь инициализировать, я получаю Не могу загрузить NIB в комплекте: ошибка – JoshDG

+0

Uch, nevermind. Я случайно назвал свою «свинцовую таблетку». Я - инструмент. – JoshDG

+0

Да, я думал, что это может быть: D Typo бывает :) – Yanchi

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