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