我有一个uitextview,我想基于内容动态加载它, 这个链接的答案在iOS11上不起作用。 https://stackoverflow.com/a/20999067/365384
CGFloat fixedWidth = textView.frame.size.width;
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
CGRect newFrame = textView.frame;
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
textView.frame = newFrame;
我能做的唯一方法是使用约束更新约束
CGFloat fixedWidth = self.textView .frame.size.width;
CGSize newSize = [self.textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
self.textViewHeightConstraint.constant = newSize.height;
我正在开发一个通用应用程序,我不希望在代码中使用太多限制。有没有办法在不增加额外约束的情况下修复它?
答案 0 :(得分:0)
我尝试过layoutifneeds,setneedforlayout,所有这些功能都没有调整uitextview的容器视图,即使你更改容器视图的大小,uitextview仍将是原始大小。
在查看uitextview的UI层次结构后,我想出了一种简单的方法来调整uitextview的高度是layoutsubviews。
[self.textview sizeToFit];
[self.textview layoutSubviews];
您可能需要在xib文件中设置textview height> = min height。
关于uitextview的动态高度有很多问题,我无法找到这个答案,不幸的是我无法回复这些问题,如果您认为这个答案有帮助,请与其他类似的问题分享。