Sil*_*tar 11 objective-c xcode5
下面的代码片段用于在安装Xcode 5之前将UITextView框架的大小调整为其内容高度,但自升级后它不起作用:
CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;
Run Code Online (Sandbox Code Playgroud)
我搜索过,但没有找到修复程序.有什么想法吗?
jar*_*air 26
在iOS 7上有新功能.
要在文本视图更新其文本后获取文本视图使用的"拟合"大小,请调用usedRectForTextContainer:
textView的layoutManager
属性,将textView的textContainer
属性作为参数传递.
关于滚动的警告:但是,建议在文本视图更新文本视图后更改文本视图的框架大小,如果在文本视图中禁用滚动,则会出现意外的视觉错误.如果发生这种情况,请在编辑文本视图的文本之前设置滚动,然后在更新后禁用它(如果需要滚动以保持禁用状态).
Mat*_*ira 14
要在iOS 7(Xcode 5)中工作,只需:
通过设置:给整个空间接收文本:
[myTextView setScrollEnabled:YES];
传递真实文字:
myTextView.text = theTextVariable;
要么 myTextView.text = @"The text...";
自动调整textView:
[myTextView sizeToFit];
禁用滚动:
[myTextView setScrollEnabled:NO];
PS:myTextView也可以用作self.myTextView或_myTextView
玩得开心!
我相信强制textView更新其contentSize的正确方法是通过调用
[textView layoutIfNeeded]
Run Code Online (Sandbox Code Playgroud)
但是,在iOS 7.0和7.1中,除非您首先设置,否则这似乎仍然无法可靠地工作
textView.layoutManager.allowsNonContiguousLayout = false;
Run Code Online (Sandbox Code Playgroud)
我不清楚这是不是一个错误,因为我无法真正找到一个很好的解释"非连续布局"甚至意味着什么.
(我的个人用例是以textView.text = newValue
编程方式更新,然后尝试适当地调整textView的大小.)