【Swift】图文混排,ios开发中在textfield或textView中插入图片
生活随笔
收集整理的這篇文章主要介紹了
【Swift】图文混排,ios开发中在textfield或textView中插入图片
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在ios開發(fā)中,我們一般都是在textfield或者textView中輸入文字。當(dāng)我們需要插入圖片的時候其實(shí)也是很簡單的
我們需要利用的textfield,textView的屬性化文本,將圖片以附件的形式插入
步驟如下:(以textView為了,oc中也是一樣的)
- 創(chuàng)建附件,同時設(shè)置好textView的字體大小(或者在storyBoard中設(shè)置)
//設(shè)置字體
textView.font = UIFont.systemFontOfSize()
//創(chuàng)建附件
let attachment = NSTextAttachment() 將附件的圖片屬性設(shè)置為需要插入的圖片,并將附件轉(zhuǎn)化為屬性化文本,并設(shè)置附件的大小
//設(shè)置附件的照片
attachment.image = UIImage(圖片名稱)
//設(shè)置附件的大?。?4這個數(shù)字可以根據(jù)實(shí)際情況調(diào)試,寬高也可以自己設(shè)置,這里用字體大小做參照)
attachment.bounds = CGRectMake(, -, textView.font.lineHeight, textView.font.lineHeight)
//將附件轉(zhuǎn)成NSAttributedString類型的屬性化文本
let attStr = NSAttributedString(attachment: attachment)
- 獲取目前textView中的文本,轉(zhuǎn)成可變的文本,記錄光標(biāo)的位置,并插入上一步中的屬性化的文本
//獲取textView的所有文本,轉(zhuǎn)成可變的文本
var mutableStr = NSMutableAttributedString(attributedString: textView.attributedText)
//獲得目前光標(biāo)的位置
let selectedRange = textView.selectedRange
//插入文字
mutableStr.insertAttributedString(attStr, atIndex: selectedRange.location)
- 設(shè)置新的可變文本的屬性,并計算新的光標(biāo)位置
//設(shè)置可變文本的字體屬性
mutableStr.addAttribute(NSFontAttributeName, value: UIFont.systemFontOfSize(), range: NSMakeRange(,mutableStr.length))
//再次記住新的光標(biāo)的位置
let newSelectedRange = NSMakeRange(selectedRange.location+, )
- 將新文本賦值給textView,并恢復(fù)光標(biāo)的位置
//重新給文本賦值
textView.attributedText = mutableStr
//恢復(fù)光標(biāo)的位置(上面一句代碼執(zhí)行之后,光標(biāo)會移到最后面)
textView.selectedRange = newSelectedRange
總結(jié)
以上是生活随笔為你收集整理的【Swift】图文混排,ios开发中在textfield或textView中插入图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThinkPHP模版时间显示
- 下一篇: 高效运营新纪元:智能化华为云Astro低