博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义UITextView实现placeholder效果
阅读量:6769 次
发布时间:2019-06-26

本文共 1859 字,大约阅读时间需要 6 分钟。

今天项目中有一个界面需要通过UITextView实现,并且具有UITextField的placeholder功能,自己昨晚之后觉得蛮有趣的,拿出来分享一下.

先放最终效果完成图:

具体思路就是创建一个UITextView,然后在其上面添加一个UILable,并通过UITextView的代理方法监听其内容的改变,来判断UILable是否需要隐藏.

代码如下:

1     UITextView *textView = [[UITextView alloc] init];//创建一个textView2     [self.view addSubview:textView];//添加到需要显示的界面上面3     textView.delegate = self;//设置textView的代理,方便后续使用代理方法监听textView内容的改变4     self.textView = textView;//设置为全局变量5     textView.frame = CGRectMake(10, 20, 300, 260);//设置frame6     textView.layer.borderColor = [UIColor grayColor].CGColor;//给textView添加一个边框,需要导入QuartzCore框架7     textView.layer.borderWidth = 1;//设置边框线宽8     textView.layer.cornerRadius = 5.0f;//设置圆角9     textView.returnKeyType = UIReturnKeyDone;//设置键盘右下角按键内容

创建完毕之后可以在textView内部添加一个UILable作为placeholder.

1 UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 300, 20)];//创建lable并设置frame2  self.lable = lable;3 lable.enabled = NO;//禁止lable可以改变,必须设置4 lable.text = @"不超过200字,详细说明你拥有的技能与特长";//设置内容5 lable.font = [UIFont systemFontOfSize:13];//设置字体大小6 lable.textColor = [UIColor grayColor];//设置字体颜色为灰色7 lable.backgroundColor = [UIColor clearColor];//清楚背景颜色8 [textView addSubview:lable];//添加到UITextView上面

此时,我们已经在UITextView上面添加了一行lable用作placeholder,若要其像UITextField那样输入的时候隐藏,没有内容的时候显示,还需要调用UITextView的代理方法:

- (void)textViewDidChange:(UITextView *)textView{    self.lable.text = textView.text;    if (textView.text.length == 0) {        self.lable.text = @"不超过200字,详细说明你拥有的技能与特长";    }else{        self.lable.text = @"";    }}

到了现在自定义的UITextView已经有模有样了,但是仍不完美,因为键盘无法退出,可以通过以下代码完成:

1 -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text2 {3     if ([text isEqualToString:@"\n"]) {4         [self.textView resignFirstResponder];5         return NO;6     }7     return YES;8 }

 

  

  

转载于:https://www.cnblogs.com/shaohuaios/p/4038920.html

你可能感兴趣的文章
shell 脚本监控Linux 性能
查看>>
RedHat搭建Samba服务器
查看>>
查询SQL Server system session ID?
查看>>
IDEA或Webstorm设置Ctrl+滚轮调整字体大小
查看>>
String[]转String
查看>>
【远程用户建立】
查看>>
各种编程语言下字符串分割及foreach遍历对比
查看>>
MySQL常用操作基本操作
查看>>
秒开缓存服务器详细介绍
查看>>
WebGoat题目解答(General~XSS)
查看>>
网页页面 自动刷新的3种代码
查看>>
Android 实现推送功能
查看>>
【framework】spring3-mvc-开篇
查看>>
网络基础
查看>>
Eclipse智能提示及快捷键
查看>>
数据驱动安全架构升级---“花瓶”模型迎来V5.0(一)
查看>>
Linux安装nginx
查看>>
把字符串转换成整数
查看>>
产品入库与倒冲领料不匹配查询
查看>>
我的友情链接
查看>>