iOS 创建一个可以自由复制的文本框(支持部分复制、全复制)

1.创建一个UITextView

_contentLab = [[UITextView alloc] initWithFrame:CGRectMake(60, 30, ScreenW-70, 20)];

_contentLab.font = [UIFont systemFontOfSize:14];

_contentLab.text = @"本当は とても とても 嬉しかったよ"; //这一步写入你的文本

[self.view addSubview:_contentLab];


2.把UITextView的编辑、滑动、边距全部关闭

_contentLab.editable = NO;

_contentLab.scrollEnabled = NO;

_contentLab.textContainer.lineFragmentPadding = 0;

_contentLab.textContainerInset = UIEdgeInsetsZero;


3.赋值你所建立的model的文本,计算高度并赋值

_contentLab.text = model.content;//赋值文本

NSMutableAttributedString * att =[[NSMutableAttributedString alloc] initWithString:_contentLab.text];

NSMutableParagraphStyle * para = [[NSMutableParagraphStyle alloc] init];

para.lineSpacing = 5;

[att addAttribute:NSParagraphStyleAttributeName value:para range:NSMakeRange(0, _contentLab.text.length)];

[att addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, _contentLab.text.length)];

_contentLab.attributedText =  att;

CGFloat height = [att boundingRectWithSize:CGSizeMake(ScreenW - 70, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading  context:nil].size.height;

_contentLab.height = height;


这时候点击会调用系统的方法,复制部分文字、或者全部复制

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容