numberOfLines UILabel не работает внутри ячейки
все,
Я очень новичок в программировании iphone. В следующем коде я хочу, чтобы текст показывал весь текст в метке комментария, но прямо сейчас он усекает его. numberofLines тоже работает неправильно. Сейчас он делает это. "Меня зовут Фред, и я не умер..."но я хочу, чтобы он отображал полный текст "Меня зовут Фред, и я еще не мертв, поэтому позвольте мне жить", даже если это должно быть на нескольких строках.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 80.0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
cell = [self.allCells objectForKey:[NSNumber numberWithInt:indexPath.row]];
if(!cell)
{
cell = [[[NSBundle mainBundle] loadNibNamed:@"UserCell2" owner:nil options:nil] lastObject];
cell.backgroundColor = [UIColor clearColor];
cell.accessoryType = UITableViewCellAccessoryNone;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[self.allCells setObject:cell forKey:[NSNumber numberWithInt:indexPath.row]];
}
GSAsynImageView *imgView = (GSAsynImageView*)[cell viewWithTag:1000];
UILabel *lblTitle = (UILabel*)[cell viewWithTag:1001];
UILabel *lblComment = (UILabel*)[cell viewWithTag:1003];
UILabel *lbltime = (UILabel*)[cell viewWithTag:1004];
//lblComment setLineBreakMode:NSLineBreakByWordWrapping];
//lblComment.numberOfLines = 0;
//lblComment.lineBreakMode = UILineBreakModeCharacterWrap;
if(self.arrComments.count==0)
{
imgView.hidden = YES;
lblTitle.text = nil;
lblComment.text = nil;
lbltime.text = nil;
if(indexPath.row==1)lblTitle.text = @"No comments yet";
}
else
{
imgView.hidden = NO;
NSDictionary *dcUser = [self.arrComments objectAtIndex:indexPath.row];
NSString *strBio = [dcUser objectForKey:@"CommentTxt"];
NSString *strDisplayName = [dcUser objectForKey:@"CommenterDisplayName"];
NSString *imgName = [dcUser objectForKey:@"ImageName"];
NSString *usernamex = [dcUser objectForKey:@"CommenterUserName"];
if([imgName isKindOfClass:[NSString class]])
{
if([imgName rangeOfString:@"facebook"].location!=NSNotFound || [imgName rangeOfString:@"twimg"].location!=NSNotFound)
[imgView loadImageFromPath:imgName];
else
[imgView loadImageFromPath:[NSString stringWithFormat:@"%@images/%c/%@/50x50%@",WEBSERVER,[usernamex characterAtIndex:0],usernamex,imgName]];
}
lblTitle.text = strDisplayName;
lblComment.text = strBio;
lbltime.text = [self getDateTitle:[dcUser objectForKey:@"Date"]];
}
return cell;
}
6 ответов
попробуйте этот код ниже и добавьте в свою ячейку..
UILabel * lblTitle = [[UILabel alloc]init];
[lblTitle setFrame:CGRectMake(110, 31, 200, 50)];
lblTitle.text = @"your Text ";
lblTitle.lineBreakMode = UILineBreakModeWordWrap;// add this line
lblTitle.numberOfLines = 0;// add this line
lblTitle.font = [UIFont fontWithName:@"Helvetica" size:12];
для более подробной информации см. мой блог с этим сообщением от этой ссылке
попробуйте это...
UILabel * label = [[UILabel alloc]init];
[label setFrame:CGRectMake(cell.frame.origin.x , cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height)];
label.text = @" Text to be displayed in label ";
label.lineBreakMode = UILineBreakModeWordWrap ;// Wrap at word boundaries
label.numberOfLines = 0;// this line include multiple lines
[cell addSubview:label];
Я думаю, это, вероятно, потому, что размер строки, которую вы хотите показать на этикетке, превышает размер этой метки
вы можете использовать свойства UILabel для увеличения количества строк.
Как UILabel* para = [[UILabel alloc]init];
para.numberoOfLines = 10;
а также попробуйте изменить para.lineBreakMode
увеличьте высоту метки и сделайте число строк равным 2 для конкретной метки.
попробуйте этот код
lblComment.numberofLines = 2;
[lblComment setFrame:CGRectMake(100,20,200,70)];
самый простой способ сделать это в раскадровке или xib. Вы можете добавить свою метку (и все, что хотите) в пользовательскую ячейку, которую вы получаете автоматически, когда у вас есть представление таблицы. Убедитесь, что ваша метка имеет определенный набор ширины и имеет ограничения в верхней и нижней части ячейки (убедитесь, что вы установили количество строк равным 0). Если они у вас есть, метка будет расширяться с высотой ячейки, которую вы установили в tableView: heightForRowAtIndexPath:.