Как увеличить размер ячейки по отношению к размеру текста в деталях TextLabel в iPhone. - PullRequest
0 голосов
/ 30 января 2012
  • В моем приложении у меня есть табличное представление со значением стиля ячейки2: (ячейка имеет две метки рядом).
  • В textLabel , я отобразил время: котороебыл отображен в timeLable .
  • в detailTextLable , я отображал комментарии, которые были введены в commentsTextView

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) 
{
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
    cell.detailTextLabel.numberOfLines = 0;
    cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;

}

cell.textLabel.text = timelabel.text;            
 cell.detailTextLabel.text = commentTextView.text;
    }
   //int x = cell.commentTextView.frame.size.height;


}

cell.detailTextLabel.textAlignment = UITextAlignmentLeft;
cell.textLabel.textAlignment = UITextAlignmentLeft;
return cell;

}


  • Мне нужно увеличить размер ячейки по отношению к длине комментариев, введенных в текстовом представлении: «commentTextView» отображается в detailTextLabel.

  • Но разница в textLable (timelable text) не расширяется вместе с detailTextLabel

что делать?

Ответы [ 2 ]

1 голос
/ 30 января 2012

Вы можете сделать это, используя - (CGFloat)tableView:(UITableView *)t heightForRowAtIndexPath:(NSIndexPath *)indexPath делегированный метод teble view, например: -

- (CGFloat)tableView:(UITableView *)t heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{
   CGSize lblSize ;
   NSString *lblString ;

   lblString = [[[dataSourceArray objectAtIndex:indexPath.row] valueForKey:@"aKey"];

   lblSize = [self getLebalSize:CGSizeMake(180, 9999) aLebalText:lblString aFont:[UIFont systemFontOfSize:15]];

   return lblSize.height + 10 ;
}

//getting labelsize
- (CGSize) getLebalSize : (CGSize) maxSize aLebalText : (NSString *) lebalText aFont : (UIFont *) font
{
    CGSize expectedLabelSize = [lebalText sizeWithFont:font constrainedToSize:maxSize lineBreakMode:UILineBreakModeTailTruncation];
    return expectedLabelSize;
}
1 голос
/ 30 января 2012

Это всегда сложно сделать правильно, для высоты вам нужно реализовать что-то вроде этого.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *myLabel = "Hello World";
    CGSize labelSize = [[myLabel sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:CGSizeMake(160,MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
    return labelSize.height;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...