2010-01-20 38 views
0

設置我UITableCell's的大小與此:廣東話設置我的UITableViewCell的高度右

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSString * vergleich = [nachricht objectAtIndex:indexPath.row]; 
    CGSize size = [vergleich sizeWithFont:[UIFont fontWithName:@"Helvetica" size:14] 
        constrainedToSize:CGSizeMake(268, MAX_HEIGHT) 
         lineBreakMode:UILineBreakModeWordWrap]; 
    return size.height + 30; 
} 

nachricht是一個NSArray中包含的所有消息。代碼只是查看消息(使用指定字體)的時間長度並計算高度。我設置了+ 30,因爲通過消息(UITextView)是一個UIlabel。

的UITextView中,應包含的信息,使用此代碼得到的大小:

- (void)setTweetText:(NSString *)_tweet;{ 
    CGSize size = [_tweet sizeWithFont:[UIFont fontWithName:@"Helvetica" size:14] 
        constrainedToSize:CGSizeMake(268, MAX_HEIGHT) 
         lineBreakMode:UILineBreakModeWordWrap]; 
    [textText setFrame:CGRectMake(55, 25, 268, size.height + 10)]; 
    textText.text = _tweet; 
    [textText sizeToFit]; 
    textText.dataDetectorTypes = UIDataDetectorTypeLink; 
} 

現在有一個問題,我不知道爲什麼:該UITextView的是更大然後是電池,即使我設置了單元格高度的大小,在TextView和下一個單元格之間有一個令人不快的距離。爲什麼他沒有爲某些細胞獲得正確的身高。這裏有一個例子:

alt text http://img34.imageshack.us/img34/214/bildschirmfoto20100120uw.png

回答

1

我只能說是在我的cellForRowAtIndexPath我使用以下,它的工作原理。我的heightForRowAtIndexPath與您的幾乎相同。

double d = [self tableView:table heightForRowAtIndexPath:indexPath]; 
UILabel* label = [[[UILabel alloc] initWithFrame:CGRectMake(10, 10, 280, d-20)] autorelease]; 
label.numberOfLines = 100; 
label.lineBreakMode = UILineBreakModeWordWrap; 
[label setFont:[UIFont boldSystemFontOfSize:[UIFont smallSystemFontSize]]]; 
label.text = [descriptions objectAtIndex:indexPath.section]; 
[cell.contentView addSubview:label]; 
0

一種可能性是你必須設置CGSize寬度各功能是不同的,行高你有CGSizeMake(268, MAX_HEIGHT)和setTweetText是CGSizeMake(262, MAX_HEIGHT)

+0

哦,我剛剛設置它只是爲了嘗試更小 - 這不是問題。 – Flocked 2010-01-20 23:11:57

+0

那麼當您拍攝照片時,您在兩種功能中使用的約束尺寸是多少? – 2010-01-20 23:48:57

+0

268是合適的大小 - 我將它設置爲較小以查看,如果他只爲一條線添加空間,則單元格更大。但他沒有把事情做好。 – Flocked 2010-01-20 23:58:25

0

它不是一個好主意,sizeWithFont從這種方法,它相當沉重,將削減您的滾動性能。如果可能的話,先計算高度,然後存儲它們以便用該方法快速訪問。

相關問題