您的位置:首页 > 编程语言

textView表情代码相关

2016-03-11 17:13 344 查看
@objc private func setEmotion(noti : NSNotification)
{
let emotion = noti.userInfo!["emotion"] as! XBEmotion

if let png = emotion.png
{
//保存之前的内容
let beforeAttributeString = NSMutableAttributedString(attributedString: MytextView.attributedText)

// 设置一个附件
let attachment = XBTextAttachment()
attachment.emotion = emotion
//设置附件图片
let imagePath = "\(emotion.path!)/\(png)"
attachment.image = UIImage(named: imagePath)
//用附件来初始化一个字符穿  attrabute
let attribute = NSAttributedString(attachment: attachment)

//attachment.bounds = CGRectMake(0, 0, MytextView.font!.lineHeight, MytextView.font!.lineHeight)  设表情大小的方式   也可以

//beforeAttributeString.appendAttributedString(attribute)
//根据光标来设置插入的位置c

let range = MytextView.selectedRange
beforeAttributeString.insertAttributedString(attribute, atIndex: range.location)

//设置表情的大小,添加属性
//beforeAttributeString.addAttributes([NSFontAttributeName : MytextView.font!], range: NSMakeRange(0, beforeAttributeString.length))

MytextView.attributedText = beforeAttributeString
//设置光标的位置,放到的位置+1
MytextView.selectedRange = NSMakeRange(range.location+1, 0)
}
else if let emoji = emotion.emoji
{
let boforeAttrbuteString = NSMutableAttributedString(attributedString: MytextView.attributedText)

let nowString = NSAttributedString(string: emoji)

let range = MytextView.selectedRange

boforeAttrbuteString.insertAttributedString(nowString, atIndex: range.location)

MytextView.attributedText = boforeAttrbuteString
//赋值之后设置
MytextView.selectedRange = NSMakeRange(range.location + 2,0 )

}

textViewDidChange(MytextView)

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: