동적으로 텍스트에 따라 테이블보기 셀 높이를 조정해야합니다. 텍스트에 따라 동적 높이가있는 레이블을 만들고 셀에 레이블을 추가해야합니다.
메모리 관리를 위해 셀을 자동으로 해제하고 셀에 추가하는 하위보기도 relaese로 설정해야합니다.
다음은 스크롤하는 두통없이 전체 텍스트를 표시하는 데 도움이되는 몇 가지 코드입니다.
블로그 배열이 셀에 표시 할 텍스트가 포함 된 배열이라고 가정합니다 (사용자 코드로 바꾸기).
- (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;
}
난 당신이 장치에서 테스트하는 코드를 넣어 생각하지 않습니다. 먼저 contentview의 이미 존재하는 레이블에 여분의 레이블을 추가함으로써 메모리에 도움이되지 않습니다. 두세 개의 셀에서 10,000 단어 이상을 사용 해보았습니까? 어떻게 테이블이 작동하는지, 동적으로 크기를 재조정하는 방법, 문자열에 속성을 할당하는 방법 등을 알고 있습니다.그러나 스크롤을 부드럽고 응용 프로그램을 손상시키지 않고 가장 중요하게하기 위해 모든 것을 함께 섞어서는 안됩니다. 해결책이 있다면 다시 시도해주세요. 감사 – GianPac