用 RunTime 为 UITextView 设置占位文本并实时改变文本框占位文本的颜色
来源:互联网 发布:大庆三打一网络直播 编辑:程序博客网 时间:2024/05/21 22:59
UITextView
实现占位文本的方式有很多种,网上一搜一大把,,这里只介绍 最简单 的一种,如标题所述:用RunTime
为UITextView
设置占位文本并实时改变文本框占位文本的颜色。对
RunTime
不太了解的童鞋可以简单看下这篇文章:iOS开发之 - Runtime,懒得点击鼠标的话我这里也简单的说下,Runtime 简称运行时,是苹果官方的一套比较底层的纯 C 语言 API, 用它可以做很多底层操作(比如访问隐藏的成员变量和方法)。
OK,足够了,接下来我们就抓紧时间来看看如何用 RunTime 为 UITextView 设置占位文本并实时改变文本框占位文本的颜色。。。
首先我们利用 RunTime 获取一下 UITextView 中一些隐藏的成员变量
- (void)viewDidLoad { [super viewDidLoad]; // 获取 UITextView 中所有的成员变量 unsigned int count = 0; Ivar *ivars = class_copyIvarList([UITextView class], &count); for (int i = 0; i < count; i ++) { Ivar ivar = ivars[i]; // ivar_getName(ivar) 意思是获取成员变量名字,如果想获得成员变量的类型用这个 ivar_getTypeEncoding(ivar) const char *name = ivar_getName(ivar); NSString *objcName = [NSString stringWithUTF8String:name]; NSLog(@" %d %@ ", i, objcName); } // 释放 free(ivars);}
打印结果如下(这里直接放截图)
从上面的截图中我们可以看出,打印的结果里有一个 placeHolderLabel
的私有变量,即 UITextView 类内部有一个名为“_placeHolderLabel”的私有成员变量。那么就简单多了,我们现在就对这个私有变量进行操作。具体的步骤如下:
- (void)setupTextView { _textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 50, [UIScreen mainScreen].bounds.size.width, 200)]; _textView.delegate = self; _textView.tintColor = [UIColor whiteColor]; _textView.font = [UIFont systemFontOfSize:15.f]; _textView.backgroundColor =[UIColor grayColor]; [self.view addSubview:_textView]; UILabel *placeholderLabel = [[UILabel alloc] init]; placeholderLabel.text = @"请输入内容请输入内容请输入内容请输入内容请输入内容请输入内容请输入内容请输入内容请输入内容请输入内容请输入内容"; placeholderLabel.font = [UIFont systemFontOfSize:15.f]; placeholderLabel.textColor = [UIColor whiteColor]; placeholderLabel.numberOfLines = 0; [placeholderLabel sizeToFit]; [_textView addSubview:placeholderLabel]; [_textView setValue:placeholderLabel forKey:@"_placeholderLabel"];}
上面代码做的事情,无非是创建一个 UITextView 和一个 UILabel 控件,然后通过键值对的原理给 UITextView 中的 _placeholderLabel 这一属性赋值,,,就不详细注释了,重要的是这种思想。。。只需上面这段代码,我们就已经完成了利用 RunTime 为 UITextView 设置占位文本。效果图如下,比较丑但很实用
阅读全文
0 0
- 用 RunTime 为 UITextView 设置占位文本并实时改变文本框占位文本的颜色
- 怎么利用runtime来改变文本框占位文字的颜色?
- 自定义文本框占位颜色和runtime
- 改变占位符的颜色
- iPhone的UITextField-更改占位符文本颜色
- 在EditText输入文本并实时改变文本的数量
- 借用runtime来实现UITextView的占位符placehold功能
- HTML5 - 使用占位符文本placeholder添加文本框提示
- textField 占位字体的颜色改变
- UIsearchBar背景颜色的改变,占位字符的颜色改变,占位字符字体大小改变
- Windows 7 改变文本区或文本框的颜色
- 隐藏文本域的边框和改变文本框颜色
- 一行代码解决文本占位符placeholder颜色
- iOS_UITextView_链接地址在应用程序内跳转_占位符_改变选中文本的属性
- 设置UITextField占位文字的颜色
- UITextView的Placeholder占位文字
- 为选中的文本设置颜色
- 改变UISearchBar的文本颜色
- Java下利用Jackson进行JSON解析和序列化
- Android 中LayoutInflater(布局加载器)之源码篇
- 第二章 开始学习C++
- SQL SERVER2008 调用Webservice
- 简单的菜单下拉效果
- 用 RunTime 为 UITextView 设置占位文本并实时改变文本框占位文本的颜色
- 基于S3C2440的Linux-3.6.6移植 PWM蜂鸣器驱动
- 推荐的、数据检查的方式
- yum 无法使用的解决
- c++primer 第五、六章
- SEO与内部链接?
- 块级元素和行内元素多种——水平,垂直、水平垂直居中的方法
- 文本挖掘预处理之向量化与Hash Trick
- 旅游类App原型制作分享-Triposo
原创粉丝点击
热门IT博客