UITextView
中的使用中,我们一般都是自定义文字的大小,行距等属性
文字的属性有两种情况,一种是直接把文字加到UITextView
上,一种是点击编辑,所以两种情况都要考虑
直接上代码
创建textview的时候
_textView = [[UITextView alloc] init];
_textView.backgroundColor=[UIColor clearColor]; //设置背景色
_textView.scrollEnabled = YES; //设置当文字超过视图的边框时是否允许滑动,默认为“YES”
_textView.editable = YES; //设置是否允许编辑内容,默认为“YES”
_textView.delegate = self; //设置代理方法的实现类
// _textView.font=[UIFont systemFontOfSize:15];//[UIFont fontWithName:@"Arial" size:18.0]; //设置字体名字和字体大小;
_textView.returnKeyType = UIReturnKeyDefault;//设置return键的类型
_textView.keyboardType = UIKeyboardTypeDefault;//设置键盘类型一般为默认
_textView.textAlignment = NSTextAlignmentLeft; //文本显示的位置默认为居左
_textView.dataDetectorTypes = UIDataDetectorTypeAll; //显示数据类型的连接模式(如电话号码、网址、地址等)
/* 设置属性 */
NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
paragraphStyle.lineSpacing = 10;// 字体的行间距
NSDictionary *attributes = @{
NSFontAttributeName:[UIFont systemFontOfSize:17],
NSParagraphStyleAttributeName:paragraphStyle
};
_textView.typingAttributes = attributes;
_textView.textColor = [UIColor blackColor];// 设置显示文字颜色
/* 设置属性 */
[self addSubview:_textView];
编辑textview的时候
- (void)textViewDidChange:(UITextView *)textView
{
// 判断是否有候选字符,如果不为nil,代表有候选字符
if(textView.markedTextRange == nil){
//1 获取光标停留的位置
NSUInteger loc = textView.selectedRange.location;
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 10; // 字体的行间距
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:17
],
NSParagraphStyleAttributeName:paragraphStyle
};
textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attributes];
//2 保证光标停留在上次的位置,解决了删除中间某个文字,光标移动最后的情况
textView.selectedRange = NSMakeRange(loc, 0);
}
}
网友评论