UITextView富文本、插入图片

直接看代码  

_textView  是定义的成员变量

 _textView = [[UITextView alloc]init];
    _textView.font = [UIFont systemFontOfSize:13];
    _textView.backgroundColor = [UIColor lightGrayColor];
    _textView.text = [NSString stringWithFormat:@"settttttttttt :%@",self.countStr];
    _textView.frame = CGRectMake(20, 100, 200, 130);
    _textView.delegate = self;
    [self.view addSubview:_textView];

通过代理方法  得到选中文字的起始位置和长度  通过定义成员变量的方式保存起来  代码如下

- (void)textViewDidChangeSelection:(UITextView *)textView {
    
    /**
     * 可以通过得到复制的长度进行判断是否有进行复制操作  再通过位置、长度进行字体变化
     */
    _loc = (int)textView.selectedRange.location;
    _len = (int)textView.selectedRange.length;
    
}

富文本   让选中的字体加粗或者改变颜色都可以  代码中是点击按钮触发字体选中改变方法

- (void)btnClick{
    
    if (_len) {  
        
        //怎么让选中的字体加粗呢
        NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:_textView.text];
        [AttributedStr addAttribute:NSFontAttributeName
         
                              value:[UIFont boldSystemFontOfSize:15.0]
         
                              range:NSMakeRange(_loc, _len)];
        
        _textView.attributedText = AttributedStr;
        
        
        
    }
    
}

图片插入  代码中也是通过按钮触发方法  点击按钮 复制一张图片到光标位置

- (void)copyBtnClick{
    
    NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithAttributedString:_textView.attributedText];
    
    NSTextAttachment *textAttachment = [[NSTextAttachment alloc] initWithData:nil ofType:nil] ;
    textAttachment.image = [UIImage imageNamed:@"111"]; //要添加的图片
    
    NSAttributedString *textAttachmentString = [NSAttributedString attributedStringWithAttachment:textAttachment] ;
    
    [string insertAttributedString:textAttachmentString atIndex:_textView.selectedRange.location];//index为用户指定要插入图片的位置
    _textView.attributedText = string;

}



你可能感兴趣的:(iOS)