码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发之UITextView,设置textView的行间距及placeholder

时间:2015-06-23 15:18:42      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

一、设置textView的行间距

1.如果只是静态显示textView的内容为设置的行间距,执行如下代码:

//????textview 改变字体的行间距?
????NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];?
????paragraphStyle.lineSpacing = 10;// 字体的行间距?
?????
????NSDictionary *attributes = @{?
???????????????????????????????? NSFontAttributeName:[UIFont systemFontOfSize:15],?
???????????????????????????????? NSParagraphStyleAttributeName:paragraphStyle?
???????????????????????????????? };?
????textView.attributedText = [[NSAttributedString alloc] initWithString:@"输入你的内容" attributes:attributes];

?

2.如果是想在输入内容的时候就按照设置的行间距进行动态改变,那就需要将上面代码放到textView的delegate方法里

-(void)textViewDidChange:(UITextView *)textView

{

? ? //? ? textview 改变字体的行间距

? ? NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

? ? paragraphStyle.lineSpacing = 20;// 字体的行间距

?? ?

? ? NSDictionary *attributes = @{

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NSFontAttributeName:[UIFont systemFontOfSize:15],

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NSParagraphStyleAttributeName:paragraphStyle

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? };

? ? textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attributes];

?

}

?

一、设置textView的placeholder

    UITextView上如何加上类似于UITextField的placeholder呢,其实在UITextView上加上一个UILabel或者UITextView,如果用UILable的话,会出现一个问题就是当placeholder的文字过长导致换行的时候就会出现问题,而用UITextView则可以有效避免此问题。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

{? ? if (![text isEqualToString:@""])

? ? ? ? {

? ? ? ? ? ? _placeholderLabel.hidden = YES;

? ? ? ? }

?? ? if ([text isEqualToString:@""] && range.location == 0 && range.length == 1)

? ? ? ? {

? ? ? ? ? ? _placeholderLabel.hidden = NO;

? ? ? ? }

? ? return YES;

}

?

说明如下:

 ?(1)?_placeholderLabel?是加在UITextView后面的UITextView,_placeholderLabel要保证和真正的输入框的设置一样,字体设置成浅灰色,然后[_placeholderLabel setEditable:NO];真正的输入框要设置背景色透明,保证能看到底部的_placeholderLabel。

? ? (2) [text isEqualToString:@""] 表示输入的是退格键

? ? (3) range.location == 0 && range.length == 1 表示输入的是第一个字符

iOS开发之UITextView,设置textView的行间距及placeholder

标签:

原文地址:http://www.cnblogs.com/allen123/p/4595368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!