2013-11-07 2 views
0

значения UILabel Текста внутри UITableViewCell становится Перевернуто каждый раз, когда я load.as моего не в состоянии установить frame и сделать его отображение на centre.But мне нужно TitleText, который будет отображаться в Начиная с cell.so, я использовал UILabel для отображения, поскольку мне нужно. Но каждый раз, когда я загружаю ячейку, она отображает неправильный заголовок для этих ячеек. Но когда я регистрирую этот массив, он регистрируется правильно, и если я проверю с помощью cell.TextLabel.text, он отобразится правильно. но не в UILabel. Запланированная партия. Невозможно проследить, где я пошла не так. Спасибо в Advance. Ниже приведен Модный код.UILabel Текст значение внутри UITableViewCell свопы

`

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return 140; 
} 


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

    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    UILabel *Title; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     Title = [[UILabel alloc]init ]; 
     Title.frame =CGRectMake(20, 18, 152, 23); 
     [Title sizeToFit]; 
    } 
    NSMutableArray *contentArray = [sectionDict valueForKey:[array objectAtIndex:indexPath.section]]; 
    NSLog(@"content %@",contentArray); 
    Title.text = [contentArray objectAtIndex:indexPath.row]; 
    [cell addSubview:Title]; 
    UIImageView *seaImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"PacificOcean.png" ]]; 
    seaImage.frame = CGRectMake(20, 60, 280, 80); 
    [cell addSubview:seaImage]; 
    return cell; 
} 

`

ответ

2

Добавьте ваши подвидов этикетки и изображения к ячейке в cell == nil блоке набора тег для каждого подвида. Получите доступ к своим подзонам вне блока по тегу. Надеюсь, это полезно для вас.

if (cell == nil) { 
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    UILabel *Title = [[UILabel alloc]init ]; 
      Title.tag = 1000; 
      Title.frame =CGRectMake(20, 18, 152, 23); 
      [Title sizeToFit]; 
    [cell.contentView addSubview:Title]; 

UIImageView *seaImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"PacificOcean.png" ]]; 
      seaImage.frame = CGRectMake(20, 60, 280, 80); 
[cell.contentView addSubview:seaImage]; 
} 
    NSMutableArray *contentArray = [sectionDict valueForKey:[array objectAtIndex:indexPath.section]]; 
    UILabel *Title = (UILabel *)[cell.contentView viewWithTag:1000]; 
    Title.text = [contentArray objectAtIndex:indexPath.row]; 
    return cell; 

Изменить код, как это ..

+0

вы абсолютно правы – IKKA

+0

@TamilKing - жаль, что я не могу заставить вас –

+0

@ user1980105 @ теперь вы получили представление, как добавить подвидов в ячейке – TamilKing

1

Я не знаю, если это опечатка с вашей стороны, но cell.TextLabel.text является NSString, так что вы не можете установить рамку на это, но cell.TextLabel.frame должен работать. Еще одна проблема, которую вы используете в используемом вами подходе, заключается в том, что UILabel *Title; объявляется вне if, после чего оператор работает после того, как оператор if заканчивается там, где он будет nil, если вы успешно деактивируете ячейку. И так как объектив-C так хорош для вас, он не будет жаловаться, когда вы передаете сообщения nil. Если вы хотите использовать это утверждение, вам также нужно добавить ярлык в свою ячейку в инструкции if, возможно, с тегом, а затем получить тот же ярлык, когда вы хотите установить фрейм. То же самое с вашим seaImage вы не должны добавлять новый каждый раз, когда вы предоставляете ячейку.

+0

огорчен ошибся я упомянул, как cell.TextLabel.text для frame.and в cell.TextLabel.frame только он не мог установить положение за кадром. –

+0

Не понимаю. Вы не можете сделать так: cellTextLabel.frame = CGRectMake (x, y, w, h) '. Получаете ли вы сообщение об ошибке или что? –

+0

sorry.setting frame for default textLabel в ячейке не работает. Насколько я знаю. пожалуйста, попробуйте один раз на себя и дайте мне знать, если это сработает. Спасибо –

2

использовать свой код, как это

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

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
UILabel *Title; 
if (cell == nil) { 
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
cell.selectionStyle = UITableViewCellSelectionStyleNone; 
Title = [[UILabel alloc]init ]; 
Title.frame =CGRectMake(20, 18, 152, 23); 
[Title sizeToFit]; 
[cell.contentView addSubview: Title]; 

UIImageView *seaImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"PacificOcean.png" ]]; 
seaImage.frame = CGRectMake(20, 60, 280, 80); 
[cell.contentView addSubview: seaImage]; 
} 
NSMutableArray *contentArray = [sectionDict valueForKey:[array objectAtIndex:indexPath.section]]; 
NSLog(@"content %@",contentArray); 
Title.text = [contentArray objectAtIndex:indexPath.row]; 

return cell; 
} 
+0

Недопустимая метка заголовка в TableCell –

+0

использование NSLog (@ "% @", [contentArray objectAtIndex: indexPath.row]) – IKKA

+0

он регистрирует значения массива.Не доступно в ячейке –

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