2012-11-19 4 views
0

저는 의 세 가지 유형에서 UITableView을로드하는 애플리케이션을 보유하고 있습니다. 나는 3 개의 커스텀 클래스를 만들고 레이아웃 subview 메서드를 사용하여 Programmatic의 모든 요소를 ​​추가했다. 그러나 문제는 모두 3이 텍스트보기를 가지고 있다는 것입니다. 변수가 될 수 있습니다. 그 텍스트보기 콘텐트 다음에 단추와 label을 추가해야합니다. 그럴 수는 있지만 콘텐츠보기 크기에 따라 셀 크기를 늘리는 방법은 무엇입니까?맞춤형 셀에서로드 할 때 셀 테이블의 높이를 조정하는 방법은 무엇입니까?

+0

가능한 중복 [동적있는 UITableViewCell 높이의 크기를 조정하는 방법 (http://stackoverflow.com/questions/3069339/how-to-dynamically- resize-uitableviewcell-height) –

답변

2

맞춤 셀 높이를 확인하려면 각 셀 높이의 표보기와 동일하게하십시오.

다음 기능을 사용하여 표보기의 셀 높이를 조정할 수 있습니다.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return height; 
} 

다음과 같은 코드를 사용할 수 있습니다.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    Defination *definition = [self.dataSource objectAtIndex:indexPath.row]; 
    NSString *detailString = definition.detailString; 
    CGSize detailSize; 
    detailSize = [detailString sizeWithFont:fontSize(12.0) constrainedToSize:CGSizeMake(420, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap]; 

    return detailSize.height + 20.0; 
} 
+0

나는 텍스트 뷰 내용을 검사하여 여기에 높이를 추가하는 방법이 필요합니다. –

+0

@angry_developer 상위 코드가 문제를 해결합니까? –

+0

나는 전혀 얻지 못하고 있니? wat인가? –

0

당신은 병이 더 복잡한 측정 셀의 또 다른 예를 추가 기능 아래

-(CGSize)SizeOfString:(NSString *)string withFont:(UIFont *)font constrainedToWidth:(CGFloat)width 
{ 
    CGSize size = [string sizeWithFont:font constrainedToSize:CGSizeMake(width, 4000) lineBreakMode:UILineBreakModeWordWrap]; 
    return CGSizeMake(width, size.height + 10); 
} 

전화

CGSize size = [self SizeOfString:your_text withFont:your_font constrainedToWidth:width_of_showing_area]; 
0

를 사용하여 높이를 계산할 수 있습니다. 마음이 내 측정 코드가 100 % 정확 밤은 있지만 접근 방식을 보여줍니다

+ (CGFloat)calculatedCellHeightForTweet:(id)tweet width:(CGFloat)width { 
//text 
CGSize s1 = [tweet[@"text"] sizeWithFont:[UIFont systemFontOfSize:[UIFont smallSystemFontSize]] 
         constrainedToSize:CGSizeMake(width, MAXFLOAT) 
          lineBreakMode:NSLineBreakByWordWrapping]; 

//user 
NSString *text; 
if(![tweet[@"to_user"] isKindOfClass:[NSNull class]]) 
    text = [NSString stringWithFormat:@"%@ > %@", tweet[@"from_user"], tweet[@"to_user"]]; 
else 
    text = tweet[@"from_user"]; 
CGSize s2 = [text sizeWithFont:[UIFont boldSystemFontOfSize:[UIFont labelFontSize]] 
         forWidth:width 
       lineBreakMode:NSLineBreakByWordWrapping]; 

return fmaxf(s1.height + s2.height + /*padding*/ 44, 60); 
} 
관련 문제