Я устанавливаю размер моих UITableCell с помощью этого:
- (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 и следующей ячейкой есть неприятное расстояние. Почему он не получает нужную высоту для некоторых клеток. Вот пример:
альтернативный текст http://img34.imageshack.us/img34/214/bildschirmfoto20100120uw.png