#import <objc/runtime.h>
在实现里面加入方法:
/**
*运行时(Runtime)
*苹果官方一套C语言库
*能做很多底层操作(比如访问隐藏的成员变量和方法)
*Ivar:instance varibles(实例变量)
*/
/** 获取成员变量列表*/
-(void)getIvarName
{
unsignedint count = 0;
//拷贝出所有的成员变量的列表
Ivar *ivars =class_copyIvarList([<#Class#>class], &count);
for (int i =0; i<count; i++) {
//取出成员变量
Ivar var = *(ivars + i);
//打印成员变量名字
NSLog(@"%s",ivar_getName(var));
}
//释放
free(ivars);
}
修改UITextField的PlaceholderLabel.textColor.
首先获取到UITextField中所有的成员变量。因为苹果并没有提供给我们能看到的直接用的方法。
-(void)getIvarName
{
unsigned int count = 0;
//拷贝出所有的成员变量的列表
Ivar *ivars = class_copyIvarList([UITextField class], &count);
for (int i = 0; i<count; i++) {
//取出成员变量
Ivar var = *(ivars + i);
//打印成员变量名字
NSLog(@"%s",ivar_getName(var));
}
//释放
free(ivars);
}
-------3种方法修改UITextField的占位颜色
找到其中的属性 _placeholderLabel1:继承UITextField。重写该方法
-(void)awakeFromNib
{
//光标颜色
self.tintColor =self.textColor;
// placeholder颜色[selfsetValue:[UIColorwhiteColor] forKeyPath:@"_placeholderLabel.textColor"];
}
/** 2:修改占位颜色*/
-(void)drawPlaceholderInRect:(CGRect)rect
{
[self.placeholderdrawInRect:CGRectMake(0,20, rect.size.width, rect.size.height)withAttributes:@{NSForegroundColorAttributeName:[UIColorgrayColor],NSFontAttributeName:self.font}];
}
//3: 修改占位颜色NSMutableDictionary *dict = [NSMutableDictionarydictionary];
dict[NSForegroundColorAttributeName] = [UIColordarkGrayColor];
self.phoneTextField.attributedPlaceholder = [[NSAttributedString alloc]initWithString:@"手机号"attributes:dict];