ios UITextView设置行距
来源:互联网 发布:怎么找天使投资知乎 编辑:程序博客网 时间:2024/06/09 22:26
由于uitextview没有设置行距的方法,所以我们要在uitextview有变化的时候随时改变固定uitextview的行距,而且每当我们输入的是中文的时候,需要判断我们输入的是拼音还是中文再来改变行距,因此我们可以尝试下面的方法:
1、.h文件我们必须先加上 UITextViewDelegate的代理
2、.m文件我们就使用下面方法
- (void) viewDidLoad
{
[superviewDidLoad];
UITextView* tTextView = nil;
tTextView = [[UITextView alloc] init];
tTextView.frame = CGRectMake(left, left, tView.width-left*2, tView.height-left*2);
tTextView.backgroundColor = [UIColor clearColor];
tTextView.delegate = self;
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 10;// 字体的行间距
NSDictionary *attributes = @{
NSFontAttributeName:[UIFont systemFontOfSize:15],
NSParagraphStyleAttributeName:paragraphStyle
};
tTextView.attributedText = [[NSAttributedString alloc] initWithString:@"内容" attributes:attributes];
// [tTextView setText:s_Default_FK];
// [tTextView setFont:[UIFont FontOfSize:14.f]];
[tTextView setTextColor:[UIColor hexColor:@"aaaaaa"]];
[tTextView setShowsHorizontalScrollIndicator:NO];
[tTextView setShowsVerticalScrollIndicator:NO];
[tView addSubview:tTextView];
tTextView.returnKeyType = UIReturnKeyDone;
// [tTextView becomeFirstResponder];
_tTextView = tTextView;
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(textFiledEditChanged:)
name:@"UITextFieldTextDidChangeNotification"
object:_tTextView];
}
-(void)viewWillDisappear:(BOOL)animated
{
[superviewWillDisappear:YES];
[[NSNotificationCenterdefaultCenter]removeObserver:self
name:@"UITextFieldTextDidChangeNotification"
object:_tTextView];
}
#define kMaxLength 20
-(void)textFiledEditChanged:(NSNotification *)obj{
UITextField *textField = (UITextField *)obj.object;
NSString *toBeString = textField.text;
NSString *lang = [[UITextInputModecurrentInputMode] primaryLanguage];// 键盘输入模式
if ([langisEqualToString:@"zh-Hans"]) {// 简体中文输入,包括简体拼音,健体五笔,简体手写
UITextRange *selectedRange = [textFieldmarkedTextRange];
//获取高亮部分
UITextPosition *position = [textFieldpositionFromPosition:selectedRange.startoffset:0];
// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (!position) {
// textview改变字体的行间距
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStylealloc] init];
paragraphStyle.lineSpacing =10;// 字体的行间距
NSDictionary *attributes =@{
NSFontAttributeName:[UIFontsystemFontOfSize:14],// 字体的大小
NSParagraphStyleAttributeName:paragraphStyle
};
_tTextView.attributedText = [[NSAttributedStringalloc] initWithString:_tTextView.textattributes:attributes];
}
// 有高亮选择的字符串,则暂不对文字进行统计和限制
else{
}
}
// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
// else{
// if (toBeString.length > kMaxLength) {
// textField.text = [toBeString substringToIndex:kMaxLength];
// }
// }
}
#pragma mark - -------- UITextViewDelegate ----------
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
if ([[textView.textdeleteSpace] isEqualToString:s_Default_FK]) {
textView.text =@"";
textView.textColor = [UIColorblackColor];
}
returnYES;
}
-(BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([textisEqualToString:@"\n"]) {
[textView resignFirstResponder];
if (k_Is_Empty(textView.text)) {
[textView setText:s_Default_FK];
[textView setTextColor:[UIColorlightGrayColor]];
}
returnNO;
}
returnYES;
}
@end
- ios UITextView设置行距
- iOS:个性化UITextView(缩进,行距,铺满)
- iOS:个性化UITextView(缩进,行距,铺满)
- iOS:个性化UITextView(缩进,行距,铺满)
- iOS:个性化UITextView(缩进,行距,铺满)
- iOS:设置UILabel行距实例
- iOS:设置UILabel行距实例
- 【iOS】 Label设置行距自适应高度
- 设置行距
- iOS - UITextView 边框的设置
- iOS 中Label在自适应宽高的同时设置文字行距行距
- 30 iOS 设置UITextView 设置边框
- iOS给UILabel设置缩进、行距、字体颜色
- ios UITextView 如何设置提示性文字
- iOS UITextView以设置边距
- iOS开发之UITextView,设置textViewplaceholder
- ios UITextView的placeHolder的设置
- iOS开发:设置UITextView的placeholder
- shell学习笔记-基础知识
- mysql 常用命令
- Git和github使用方法总结
- Android实现RecyclerView自定义列表、点击事件以及下拉刷新
- Android实现 UDP
- ios UITextView设置行距
- 了解ASP.NET MVC几种ActionResult的本质:EmptyResult & ContentResult
- 数据结构与算法——有向无环图的拓扑排序C++实现
- 前端开发知识点
- TreeMap树状映射表
- java 框架个人心得
- 架构设计:系统间通信(28)——Kafka及场景应用(中1)
- dfs,bfs的二分匹配模板(模板题hdu1150)
- github配置学习笔记【windows】