我動態地添加視圖滾動視圖與佈局約束通過編程方式,對於文本視圖組件我想設置高度約束根據textview中設置的文本,所以我沒有創建類延伸UITextView的。在文本視圖類中我已經寫了下面的代碼來添加高度約束。根據內容UITextView高度是錯誤的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中給出了錯誤的高度。我檢查了iOS 9.0新版本的apple文檔,其中有一些與自動佈局有關的更改。
任何幫助表示讚賞。
我sizeTofit()不工作,因爲滾動已啓用,謝謝!很有幫助。 –