美文网首页iOS
iOS TextView插入表情或者图片后字体变大或变小

iOS TextView插入表情或者图片后字体变大或变小

作者: 887d1fc86fe6 | 来源:发表于2019-06-03 11:46 被阅读0次

在我们做编辑框的时候,可能有需要插入表情的操作,但是会发现在添加表情之后,表情之后的再次输入文字的时候,文字内容回到了控件默认字号。所以我们需要在每次插入表情的时候修整字号。


方法一:
/// 插入表情
///
/// - Parameters:
///   - range: 插入位置 例: textView.selectedRange
///   - icon: 表情Icon
///   - iconName: 表情中文名
///   - font: 字体(一般插入表情之后,在输入控件中会导致表情后面输入的字体重置,所以需要修正)
func expressionInset(_ range:NSRange, _ icon:String, _ iconName:String, _ font:UIFont? = nil) ->NSMutableAttributedString {
    
    let tempStringOne:NSMutableAttributedString = NSMutableAttributedString(attributedString: self)
    
    if !icon.isEmpty {
        
        let attachment:CWTextAttachment = CWTextAttachment()
        
        attachment.icon = icon
        
        attachment.iconName = iconName
        
        attachment.image = UIImage(named: icon)
        
        attachment.bounds = CWExpressionIconBounds_Main
        
        let tempStringTwo:NSAttributedString = NSAttributedString(attachment: attachment)
        
        tempStringOne.insert(tempStringTwo, at: range.location)
        
        // 修整字体属性
        if font != nil {
            
            tempStringOne.addAttributes([.font : font!, .baselineOffset : 0, (kCTSuperscriptAttributeName as NSAttributedString.Key) : 0], range: NSMakeRange(0, tempStringOne.length))
        }
    }
    
    return tempStringOne
}

方法二:
@interface ViewController ()<UITextViewDelegate>

@property (nonatomic, strong)CustomTextView *textView;

/// 将字体属性记录成公用的, 然后在每次UITextview的内容将要发生变化的时候,重置一下它的该属性。
@property (nonatomic, strong)NSDictionary *typingAttributes;

@end

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
    textView.typingAttributes = self.typingAttributes;
    return YES;
}

相关文章

  • iOS TextView插入表情或者图片后字体变大或变小

    在我们做编辑框的时候,可能有需要插入表情的操作,但是会发现在添加表情之后,表情之后的再次输入文字的时候,文字内容回...

  • SuperTextView-支持多种字体样式和图片混排

    单个textview支持多种字体样式,支持插入图片 下载和demo见GitHub: GITHUB Add Supe...

  • 关于加载js页面

    图片自适应宽度(webView加载的时候) 设置字体加载图片(label或者textView加载的时候)

  • android字体

    这个几天碰到了个问题,我在系统设置里面修改字体的大小,在应用中字体就会变大变小,感觉文字变大后不好看,早上的时候群...

  • 自由变换

    这是原图 我将它的眼镜变大,嘴巴变小后的图片 我的笔记

  • IntelliJ IDEA常用配置

    【1】进入设置: 【2】设置主题: 【3】编辑区的字体变大或者变小: 【4】鼠标悬浮在代码上有提示: 【5】自动导...

  • IDEA的常用设置

    【1】进入设置: 【2】设置主题: 【3】编辑区的字体变大或者变小: 【4】鼠标悬浮在代码上有提示: 【5】自动导...

  • IDEA常用设置

    【1】进入设置: 【2】设置主题: 【3】编辑区的字体变大或者变小: 【4】鼠标悬浮在代码上有提示: 【5】自动导...

  • Day16(demo 变大缩小)

    demo 点击图片当前显示变大,其他变小

  • 锦囊11:创意黑板报粉笔字效果

    步骤: 1、插入背景:右键—设置背景格式—图片或纹理填充—插入图片 2、插入文本框—录入文字,字体:方正正大黑简体...

网友评论

    本文标题:iOS TextView插入表情或者图片后字体变大或变小

    本文链接:https://www.haomeiwen.com/subject/ikxcxctx.html