iOS开发之UITextView,设置textView的行间距及placeholder
来源:互联网 发布:连环替代法不拿出算法 编辑:程序博客网 时间:2024/05/29 12:21
一、设置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 表示输入的是第一个字符
让UITextView和UITextField同样拥有垂直居中的属性,建议单独一个类继承自UITextView
只需要初始化UITextView之后用KVO监听 "contentSize"
_textView = [[UITextView alloc] initWithFrame:CGRectMake(20.0f, DOT_COORDINATE, 260.0f,TABLE_VIEW_ROW_HEIGHT*2)];
#pragma mark - KVO
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void*)context
{
//
//
//
//
}
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS开发之UITextView,设置textView的行间距及placeholder
- iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
- UITextView 行间距设置以及placeholder
- iOS开发:设置UITextView的placeholder
- iOS设置textView的行间距
- 设置UITextView的行间距
- iOS设置textView的placeholder
- UITextView 设置行间距
- UITextView 行间距设置
- ios UITextView的placeHolder的设置
- InterlliJ配置GitHub环境
- CMSIS:Cortex Microcontroller Software Interface Standard
- VBA excel文件合并
- 如何把JSP页面导出到Excel中?
- Java语言程序设计【基础篇】【chapter08_8.7】
- iOS开发之UITextView,设置textView的行间距及placeholder
- PX4中文维基汉化项目启动
- socks代理
- 设计相关2-UML建模
- BZOJ2799: [Poi2012]Salaries
- 日常坑-page1.jsp (line: 1, column: 96) The JSP specification requires that an attribute name is precede
- NYQJ-56阶乘因式分解(一)
- 疑问:MySQL死锁信息
- 第三十九讲 项目二 求三位数以内所有n=a!+b!+c!的数