Лучше всего рассматривать текстовый макет UILabel как черный ящик (он делает такие забавные вещи, как автоматическая настройка размера шрифта, когда текст становится слишком длинным).
Вместо этого рассмотрите возможность использования методов определения размера UIView:
// Ask the label to shrink (or grow) until it fits its text:
[cellDetailTextLabel sizeToFit];
// Get the frame.
CGRect r = cellDetailTextLabel.frame;
// Move its origin to below cellDetailTextLabel
r.origin.y = CGRectGetMaxY(r);
// Set its size to the size of the second label
r.size = cellLabel2.frame.size;
// Finally, move the second label
cellLabel2.frame = r;
Я заметил странное поведение с изменением размера текста на iPhone 4 (иногда ярлыки - это слишком большая строка или около того); Я не уверен, что это исправлено в 4.1.