2012-05-12 5 views
0

UITextView이 포함 된 셀의 높이를 동적으로 다시 계산하려고합니다. 셀의 높이는 UITextView의 높이에 따라 다릅니다.동적 셀 높이 iOS

아래의 소스 코드는 테이블의 각 셀에 대한 높이를 다시 계산합니다. 이것은 NSDictionary의 일부 텍스트입니다. 모든 높이가 다시 계산 된 후에 배열 heightCells에 포함 된 새로운 높이로 테이블 뷰를 다시로드합니다.

UITextView *tempTextView = [[UITextView alloc] init]; 
UIFont *font = [UIFont fontWithName:@"Helvetica" size:16.0]; 
[tempTextView setFrame:CGRectMake(10, 63, 300, 9999)]; 
[tempTextView setFont:font]; 
NSString *str = [d valueForKey:@"definition"]; // set long text 
tempTextView.text = str; 
CGRect frame = tempTextView.frame; 
frame.size.height = tempTextView.contentSize.height + 20.0; 
tempTextView.frame = frame; 
[tempTextView sizeToFit]; 
int height = tempTextView.frame.size.height + 150.0; // set padding 150.0 px 
[heightCells addObject:[NSNumber numberWithFloat:height]]; 

UITableView은 방법 :

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return [[heightCells objectAtIndex:indexPath.row] floatValue]; 
} 

하지 망막 디스플레이 모두에 좋은 일을하고 높이가 정확한 계산하지만, 망막 디스플레이에 나는 재 계산에 문제가 있습니다. 망막이 아니라 망막이 320x480 포인트의 뷰를 가지고 있고 재 계산에 영향을 미치지 않아야한다는 것을 알고 있습니다. 하지만 제 경우에는 이것이 나타납니다.

아래 스크린 샷을 참조하십시오. 스크린 샷에서 볼 수 있듯이 공유 버튼을 누른 후 아래쪽 패딩은 망막 및 망막 디스플레이와 다른 것입니다. 그리고 어떤 종류의 문제인지는 알지 못합니다. 도움을

retina

not retina

감사합니다!

답변

1

UITableViewCell에있을 때 tempTextView의 프레임이 다른 것 같습니다. 나는이 일에 내 일하는 기술을 설명했다 answer.