Ios 如何在textView中垂直对齐文本?(Swift)
我发现这在链接到viewController的UITextView上非常有效,但我不知道如何让它在单独类中创建的UITextView上正常工作 我希望视图有三个单位(字符高度)高,内容垂直居中 情况就是这样: 另一方面,如果我将视图设置为4个单位高,它看起来很好,但我没有足够的空间。 以下是我所做的(这似乎适用于单行线) 我不相信简单地使用Ios 如何在textView中垂直对齐文本?(Swift),ios,swift,Ios,Swift,我发现这在链接到viewController的UITextView上非常有效,但我不知道如何让它在单独类中创建的UITextView上正常工作 我希望视图有三个单位(字符高度)高,内容垂直居中 情况就是这样: 另一方面,如果我将视图设置为4个单位高,它看起来很好,但我没有足够的空间。 以下是我所做的(这似乎适用于单行线) 我不相信简单地使用NSAttributedString就可以实现垂直对齐,但如果可能,请告诉我如何进行 谢谢 这将由用户编辑吗?因此,当用户键入时,文本将随着新行的添加而
NSAttributedString
就可以实现垂直对齐,但如果可能,请告诉我如何进行
谢谢 这将由用户编辑吗?因此,当用户键入时,文本将随着新行的添加而垂直移动?否,它们将是表格的标题,并将保持不变。不可编辑?六羟甲基三聚氰胺六甲醚。。。那么为什么要使用
UITextView
<代码>UILabel自动垂直居中文本…当然!最初,我将标题和表中的所有数据放在一起,但将标题分离出来进行格式化。。。有时候,你不得不站出来呼吸新鲜空气,重新审视全局!非常感谢。(再次!)撇开简单的解决方案不谈,为什么上述方法不起作用?如果文本确实发生了变化怎么办?
class TestClass: UIView {
var titleView1 = UITextView()
var titleView2 = UITextView()
override func layoutSubviews() {
titleView1.centerVertically()
titleView2.centerVertically()
}
override func draw(_ rect: CGRect) {
super.draw(rect)
let h = 3 * GlobalConstants.fontSize // 3 * 14 = 42
var title = "Single Line"
var bounds = CGRect(x: 10, y: 10, width: 100, height: h)
displayTitle(str: title, column: &titleView1, bounds: bounds)
title = "First Line\nSecondLine"
bounds = CGRect(x: 120, y: 10, width: 100, height: h)
displayTitle(str: title, column: &titleView2, bounds: bounds)
}
func displayTitle(str: String, column: inout UITextView, bounds: CGRect) {
let view = UITextView(frame: bounds)
let attributes: [NSAttributedString.Key: Any] = [
.foregroundColor: UIColor.blue,
.font: UIFont.italicSystemFont(ofSize: 16)
]
let attributedText = NSMutableAttributedString(string: str, attributes: attributes)
view.attributedText = attributedText
view.textAlignment = .center
view.centerVertically()
self.autoresizesSubviews = true
self.addSubview(view)
}
}