Я динамически добавляю представления в scrollview с ограничением компоновки. Для компонента текстового представления я хотел установить ограничение по высоте в соответствии с текстовым набором в текстовом виде, поэтому я создал класс, расширяющий UITextView. Внутри класса текстового вида я написал следующий код для добавления ограничения высоты.UITextView height в соответствии с содержимым неверно в iOS 9
#import "CETextView.h"
@implementation CETextView
- (void)layoutSubviews
{
[super layoutSubviews];
if (!self.heightConstraint)
{
self.heightConstraint = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:100];
[self addConstraint:self.heightConstraint];
}
CGRect lRect = [self contentSizeRect];
CGSize descriptionSize = lRect.size;
self.heightConstraint.constant = descriptionSize.height;
}
- (CGRect)contentSizeRect
{
NSTextContainer* textContainer = [self textContainer];
NSLayoutManager* layoutManager = [self layoutManager];
[layoutManager ensureLayoutForTextContainer: textContainer];
CGRect lRect = CGRectMake(0, 0,320, 500);
lRect.size = self.contentSize;
lRect.size.height = lRect.size.height + 5;
return lRect;
}
@end
Этот код дает правильную высоту в iOS 8.0, но дает неправильную высоту в iOS 9.0. Я проверил apple doc для новой версии iOS 9.0, есть некоторые изменения, связанные с автоматической компоновкой.
Любая помощь приветствуется.
мой размерTofit() не работал, потому что прокрутка была включена, спасибо! очень полезно. –