вам нужно динамически настроить высоту ячейки вашего табличного представления в соответствии с вашим текстом. После этого вам нужно создать метку с динамической высотой, которая зависит от текста, и добавить эту метку в ячейку.
Для памятиДля управления вам необходимо убедиться, что ваша ячейка автоматически высвобождается, а вложенные представления, добавленные в ячейку, также получают повторное отображение.
Вот код, который поможет вам отобразить весь текст без головной боли при прокрутке.
Предполагается, что blogArray - это массив, содержащий текст, который вы хотите отобразить в ячейке. (Замените его собственным).
- (UITableViewCell *)tableView:(UITableView *)tbleView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
if([self.blogArray count]>0)
{
CGSize labelsize;
UILabel *blogTextLabel = [[UILabel alloc] init];;
[blogTextLabel setNumberOfLines:0];
[blogTextLabel setBackgroundColor:[UIColor clearColor]];
NSString *text=[self.blogArray objectAtIndex:indexPath.row];
[blogTextLabel setFont:[UIFont fontWithName:@"Helvetica"size:14]];
labelsize=[text sizeWithFont: blogTextLabel.font constrainedToSize:CGSizeMake(268, 2000.0) lineBreakMode:UILineBreakModeWordWrap];
blogTextLabel.frame=CGRectMake(10, 24, 268, labelsize.height);
blogTextLabel.text=text;
[cell.contentView addSubview: blogTextLabel];
[blogTextLabel release];
}
else {
}
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
return cell;
}
Вам также необходимо настроить высоту ячейки табличного представления: -
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGSize labelsize;
UILabel * textDesc1 = [[UILabel alloc] init];
[textDesc1 setNumberOfLines:0];
textDesc1.text=[self.blogArray objectAtIndex:indexPath.row];
[textDesc1 setFont:[UIFont fontWithName:@"Helvetica" size:14.0]];
labelsize=[textDesc1.text sizeWithFont:textDesc1.font constrainedToSize:CGSizeMake(268, 2000.0) lineBreakMode:UILineBreakModeWordWrap];
labelsize.height=labelsize.height+35;
[textDesc1 release];
return (CGFloat)labelsize.height;
}