iOS-如何预定义TextView行高度
我有一些iOS-如何预定义TextView行高度,ios,swift3,uitextview,Ios,Swift3,Uitextview,我有一些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
声明如下
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
}()
我解决了这个问题。问题是我不应该根据属性设置
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
}()
那些正在寻找Swift 4版本的人
let spacing = NSMutableParagraphStyle()
spacing.lineSpacing = 7
spacing.alignment = .center
textView.typingAttributes = [NSAttributedStringKey.paragraphStyle.rawValue: spacing,
NSAttributedStringKey.font.rawValue: UIFont.systemFont(ofSize: 14)]
在iOS 11中,苹果会清除每个字符后的文本属性。所以你必须在
func textViewShouldBeginEditing(_ textView: UITextView) -> Bool
那些正在寻找Swift 4版本的人
let spacing = NSMutableParagraphStyle()
spacing.lineSpacing = 7
spacing.alignment = .center
textView.typingAttributes = [NSAttributedStringKey.paragraphStyle.rawValue: spacing,
NSAttributedStringKey.font.rawValue: UIFont.systemFont(ofSize: 14)]
在iOS 11中,苹果会清除每个字符后的文本属性。所以你必须在
func textViewShouldBeginEditing(_ textView: UITextView) -> Bool
有关于如何实现的提示吗?有关于如何实现的提示吗?