Although the reason for the problems is still unclear to me, I fixed the problem by subclassing UILabel and putting the following code:
@implementation MyLabel
- (void)layoutSubviews
{
self.preferredMaxLayoutWidth = CGRectGetWidth(self.bounds);
[super layoutSubviews];
}
@end