В моем приложении есть UITableViewCell, который динамически регулирует свою высоту в зависимости от количества текста в ячейке. Я думаю, что это может помочь ответить на ваш вопрос.
Вот хитрость: нет необходимости «приближать размеры текста» --- ознакомьтесь с документацией для метода [NSString sizeWithFont: constrainedToSize: lineBreakMode:]
maximumSize = CGSizeMake(self.contentView.bounds.size.width - TEXT_LEFT_MARGIN * 2.0,
MAXIMUM_TEXT_HEIGHT);
textStringSize = [textLabel.text sizeWithFont:textLabel.font
constrainedToSize:maximumSize
lineBreakMode:textLabel.lineBreakMode];
Итак, давайте возьмем простой пример, где вы хотите, чтобы 10 пикселей пробела над меткой и 15 пикселей пробела под меткой. Затем вы сгенерируете CGRect
с измерениями выше, с высотой 25 пикселей, добавленных к значению textStringSize.height
, сгенерированному выше.
Использование этого метода означает, что ваши UITableViewCells будут хорошо масштабироваться вверх и вниз, независимо от размера комментариев в разных ярлыках.