iOS开发之UITextView,设置textView的行间距及placeholder
2016-03-22 19:14
513 查看
一、设置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 表示输入的是第一个字符
相关文章推荐
- PKIX path building failed
- UESTC 1012 Ladygod (多校联盟3)
- UIButton - 设置图片及文字、文字左对齐
- easyui.min.js 报错rows is undefined
- java中的goto,const,ttrue,false,null
- 【优先队列】HDU1509Windows Message Queue
- java中queue的使用
- iOS开发—UILable详解
- UESTC 1271 Search gold (DP,多校联盟3)
- 【转】Android UI开发第三十一篇——Android的Holo Theme
- android SpannableStringBuilder
- GUID(全局唯一标识符)
- IT十八掌作业_java基础第十六天_GUI/socket
- .NET跨平台之Sake和KoreBuild
- ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
- 探究requestDisallowInterceptTouchEvent失效的原因
- A - Farey Sequence——(筛法求欧拉函数)
- 【转】Android UI开发第二十四篇——Action Bar
- 在AI中如何合理的处理图像{太原UI设计师}讲
- FineUI Gird单元格编辑 保存修改的数据到数据库 LINQ