Autolayout для iOS: проблема с UILabels в родительском представлении с изменением размера

у нас есть представление, которое содержит только UILabel. Этот ярлык содержит многострочный текст. Родитель имеет переменную ширину, размер которой можно изменить жестом панорамирования. Моя проблема в том, что, когда я делаю это, изменение размера UILabel не пересчитывает его высоту, так что весь контент все еще виден, он просто обрезает его.

нам удалось исправить это с помощью небольшого взлома, но запустить его ужасно медленно:

- (void)layoutSubviews {

    CGSize labelSize = [self.labelDescription sizeThatFits:CGSizeMake(self.frame.size.width, FLT_MAX)];

    if (self.constraintHeight) {
        [self removeConstraint:self.constraintHeight];
    }

    self.constraintHeight = [NSLayoutConstraint constraintWithItem:self.labelDescription attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:labelSize.height];

    [self addConstraint:self.constraintHeight];

    [super layoutSubviews];
}

не должен»это происходит автоматически с autolayout?

РЕДАКТИРОВАТЬ

Структура моего взгляда такова:

UIScrollView
---> UIView
     ---> UILabel

Вот ограничения на UIScrollView:

=32)-[DescriptionView:0x85c81c0]   (Names: '|':UIScrollView:0x85db650 )>,
,
,
,
,

Вот ограничения на UIView:

,
,
,

Сама UILabel не имеет никаких ограничений, кроме того, чтобы прикрепить его к краям своего родителя

Ответы на вопрос(3)

Ваш ответ на вопрос