UITextView高度调整
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITextView高度调整相关的知识,希望对你有一定的参考价值。
我正在尝试创建一个ViewController来保存一些大文本。我使用UILabel
,但由于文本可能很长,它将无法正常工作。试图切换到UITextView
but我有一些问题。
我正在使用ScrollView
,因为顶部有一个图像,底部有一个按钮。所以我不在UITextView
本身内滚动。我已经禁用了它。
我希望Text根据文本长度自动调整高度。所以它可以滚动图像,按钮等。就像应用程序Instapaper,Medium,Pocket等。
我已经尝试了StackOverflow上的所有代码和解决方案,但它们要么不起作用,要么它们是Objective-C。
故事板结构:视图控制器 - >视图 - > ScrollView - >图像,TextView,按钮
class ViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
var theContent = fromClass.text
override func viewDidLoad() {
super.viewDidLoad()
textView.text = theContent
}
}
几乎没有办法改变UITextView
的大小
extension String {
func bounds(approximated width: CGFloat, approximated height: CGFloat, font: UIFont) -> CGRect {
let size = CGSize(width: width, height: height)
let attribs = [NSAttributedStringKey.font: font]
return NSString(string: self).boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attribs, context: nil)
}
}
approximated width
=你的UITextView
的宽度我认为它将是静态值,你不会改变。
qazxsw poi =你的qazxsw poi的最小高度。
该方法将返回文本输入的框架。取决于它的高度属性,取决于有多大改变了approximated height
的大小。
如果它不能满足你,你可以用另一种方式。
UITextView
与上面相同的用法。
将视图层次结构调整为以下视图层次结构:
View Controller - > View - > ScrollView - > View1 - > Image,UILabel,Button
1-给出view1左上角 - 右下角的约束,并将中心X与其父视图对齐
2-在View1的顶部添加UITextView
并赋予它左上角约束和固定高度约束。
3-添加一个func heightOfString(_ attributes: [NSAttributedKeyString : Any]) -> CGFloat {
let size = self.size(withAttributes: attributes)
return size.height
}
并给它顶部约束图像和右下左约束它的超视图。
使UIImageView
行数= 0
内容不应该是可滚动的。
请注意:在您的情况下;你不需要UILabel
。
如果你想使用UILabel
:
1-添加一个高度约束到UITextView
并连接一个名为:constTextViewHeight的插座
UITextView
UITextView
以上是关于UITextView高度调整的主要内容,如果未能解决你的问题,请参考以下文章
iPad 上的 UIModalPresentationFormSheet。键盘出现时如何调整UITextView的高度
UITextView 高度未在 UITableViewCell 中调整大小