gpt4 book ai didi

iOS - 如何预定义 TextView 行高

转载 作者:行者123 更新时间:2023-11-28 19:31:15 27 4
gpt4 key购买 nike

我有一些 UITextView 声明如下

lazy var inputTextView: UITextView = {
let tv = UITextView()
tv.tintColor = UIColor.darkGray
tv.font = UIFont.systemFont(ofSize: 17)
tv.backgroundColor = UIColor.white
return tv
}()

我一直在搜索如何为这个 UITextView 预定义行高 所以每当我写一个长文本时,当它到达行尾时到下一行,间距将大于默认值。

我尝试在 UITextView 声明中使用以下内容:

let style = NSMutableParagraphStyle()
style.lineSpacing = 40
let attributes = [NSParagraphStyleAttributeName : style]
tv.attributedText = NSAttributedString(string: "", attributes:attributes)

这会变成:

lazy var inputTextView: UITextView = {
let tv = UITextView()
tv.tintColor = UIColor.darkGray
tv.font = UIFont.systemFont(ofSize: 17)
tv.backgroundColor = UIColor.white
let style = NSMutableParagraphStyle()
style.lineSpacing = 40
let attributes = [NSParagraphStyleAttributeName : style]
tv.attributedText = NSAttributedString(string: "", attributes:attributes)
return tv
}()

只有当我在 attributedText 属性中预先插入一些文本时它才有效,但由于文本在开始时是空的,它不会使用这些属性并将设置为默认值。

如何在 UITextView 中增加默认行高并保持默认行高?

谢谢;)

最佳答案

我解决了这个问题。问题是我不应该根据属性设置 attributedText,因为当我们开始输入时,属性就消失了。

相反,我将 typingAttributes 设置为我想要的值,这样每当我输入属性时都不会丢失。

最终版本:

lazy var inputTextView: UITextView = {
let tv = UITextView()
tv.tintColor = UIColor.darkGray
tv.font = UIFont.systemFont(ofSize: 17)
tv.backgroundColor = UIColor.white
let spacing = NSMutableParagraphStyle()
spacing.lineSpacing = 4
let attr = [NSParagraphStyleAttributeName : spacing]
tv.typingAttributes = attr
return tv
}()

关于iOS - 如何预定义 TextView 行高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44400260/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com