2012-06-01 3 views
3

i`m пытается построить представление таблицы с текстом субтитров в клеткахсубтитры выравнивания в UITableViewCell

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

вот мой код

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

    static NSString *CellIdentifier = @"CustomCell"; 

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

    [[cell textLabel] setTextAlignment:UITextAlignmentRight]; 
    [[cell detailTextLabel] setTextAlignment:UITextAlignmentRight]; 

    cell.textLabel.text = [array objectAtIndex:indexPath.row]; 
    cell.textLabel.font = [UIFont systemFontOfSize:18]; 
    cell.detailTextLabel.text = @"test"; 
    return cell; 
} 

когда я удалить код субтитров выравнивание работает отлично

любую идею?

ответ

5

Итак, подкласс UITableView Cell и настройте метки с помощью init. Вы можете переопределить layoutSubviews и перемещать ярлыки направо:

- (void)layoutSubviews { 
    [super layoutSubviews]; 
    self.textLabel.frame = CGRectMake(0.0, 68.0, 80.0, self.frame.size.height); 
    self.detailTextLabel.frame = CGRectMake(0.0, 68.0, 120.0, self.frame.size.height); 
} 

Это только примеры значений, так что вы можете получить эту идею.

+0

Thanx Man, то больш :) – aLFaRSi

+0

@ H.aLFaRSi дайте мне знать, если я могу помочь в чем-нибудь :) – self

+0

@AlbrahimZ спасибо человеку вы были великолепны :) – aLFaRSi

0

Почему вы инициализация ячейки дважды:

if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
    } 

Вы можете создать пользовательскую ячейку с двумя метками и обеспечивают выравнивание того label.Follow следующих действий:

1.Add нового файл подкласс UITableViewCell говорит labelCustomCell. 2.In labelCustomCell создает две метки: label1 и label2. 3. В методе initWithStyle выделите эти метки и выполните выравнивание. 4. В методе layoutSubViews назначьте фрейм этим ярлыкам. 5.In метод cellForRowAtIndexPath написать следующий код:

static NSString *CellIdentifier = @"DataEntryCell"; 
       labelCustomCell *cell = (labelCustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
       if (cell == nil) { 
        cell = [[[labelCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
       } 
cell.label1.text = [array objectAtIndex:indexPath.row]; 
    cell.label1.font = [UIFont systemFontOfSize:18]; 
    cell.label2.text = @"test"; 

Не забудьте импортировать labelCustomCell.

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