//首先添加监听
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)
name:@"UITextViewTextDidChangeNotification"
object:self.contentTextView];
//监听处理
-(void)textFiledEditChanged:(NSNotification *)obj{
UITextView * textView = (UITextView *)obj.object;
NSString *toBeString = textView.text;
UITextRange *selectedRange = [textView markedTextRange];
//获取高亮部分
UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0];
// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (!position) {
//限制最大字数
NSInteger realLength = toBeString.length;
if (realLength > 100) {
toBeString = [toBeString substringToIndex:100];
}
//textview 改变字体的行间距
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 37*WidthBL;// 字体的行间距
NSDictionary *attributes = @{
NSFontAttributeName:[UIFont systemFontOfSize:14*WidthBL],// 字体的大小
NSParagraphStyleAttributeName:paragraphStyle
};
textView.attributedText = [[NSAttributedString alloc] initWithString:toBeString attributes:attributes];
}
// 有高亮选择的字符串,则暂不对文字进行统计和限制
else{ }
//计算当前文本高度并让View向上移动
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:37*WidthBL];
CGFloat H = [textView.text boundingRectWithSize:CGSizeMake(textView.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{
NSParagraphStyleAttributeName:paragraphStyle,
NSFontAttributeName:textView.font,
} context:nil].size.height;
if (H>170) {
self.view.transform = CGAffineTransformMakeTranslation(0, 170-H);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)