为UITextView设置行间距

为UITextView设置行间距与为UILabel设置行间距不同,他需要进行动态的设置。所以下面为大家提供一种解决思路,即在func textViewDidChange(_ textView: UITextView)代理中添加如下代码,我的实现语言为swift。

      if(textView.markedTextRange == nil){    //这个判断条件是为了防止由英文切换为中文时键盘内有保留字符串造成重复写入bug

            let tempString = textView.text!

            let paraph = NSMutableParagraphStyle()

            paraph.lineSpacing = 10   //该属性即为行间距

            paraph.lineBreakMode = .byCharWrapping     //这个属性是防止将字符串识别为一个单词而造成胡乱换行

            let attributes = [

                NSFontAttributeName:某种字体,      //设置字体

                NSParagraphStyleAttributeName: paraph,

                NSForegroundColorAttributeName : 某种颜色   //设置颜色

            ]

            textView.attributedText = NSAttributedString(string: tempString, attributes: attributes as Any as? [String : Any])

        }



最后还有一个小提示:当在UITextView中插入文字用这个方法textView.insertText(text)或者textView.deleteBackward(),但是此时textView不是第一响应者,就会造成当textView区域不能完全显示文字时文字不会上移,但是如果是第一响应者就会上移。这个也会造成一些bug,大家可以多加注意。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值