在ios开发中,我们一般都是在textfield或者textView中输入文字。当我们需要插入图片的时候其实也是很简单的
我们需要利用的textfield,textView的属性化文本,将图片以附件的形式插入
步骤如下:(以textView为了,oc中也是一样的)
-
1 //设置附件的照片
2 attachment.image = UIImage(图片名称)
3 //设置附件的大小(-4这个数字可以根据实际情况调试,宽高也可以自己设置,这里用字体大小做参照)
4 attachment.bounds = CGRectMake(0, -4, textView.font.lineHeight, textView.font.lineHeight)
5 //将附件转成NSAttributedString类型的属性化文本
6 let attStr = NSAttributedString(attachment: attachment)
- 获取目前textView中的文本,转成可变的文本,记录光标的位置,并插入上一步中的属性化的文本
-
1 //获取textView的所有文本,转成可变的文本
2 var mutableStr = NSMutableAttributedString(attributedString: textView.attributedText)
3 //获得目前光标的位置
4 let selectedRange = textView.selectedRange
5 //插入文字
6 mutableStr.insertAttributedString(attStr, atIndex: selectedRange.location)
-
1 //设置可变文本的字体属性
2 mutableStr.addAttribute(NSFontAttributeName, value: UIFont.systemFontOfSize(24), range: NSMakeRange(0,mutableStr.length))
3 //再次记住新的光标的位置
4 let newSelectedRange = NSMakeRange(selectedRange.location+1, 0)
- 将新文本赋值给textView,并恢复光标的位置
-
1 //重新给文本赋值
2 textView.attributedText = mutableStr
3 //恢复光标的位置(上面一句代码执行之后,光标会移到最后面)
4 textView.selectedRange = newSelectedRange
|
请发表评论