runtime-运行时动态添加占位文字颜色-UITextField

原创 2016年05月11日 16:16:05

帮助大家更好的理解运行时动态方法, 这里能设定成一个UITextFied的分类,以后调用这个分类 就能很灵活的在任何地方改变占位文字的颜色了

特点:

1.取出系统的私有变量
2.运行时动态改变颜色
3.运行时交换方法

这里.h文件


@interface UITextField (PlaceHolder)

@property UIColor*  placeholderColor;

@end

/*********************************************/
下面.m文件
#import <objc/message.h>

@implementation UITextField (PlaceHolder)

//开始就进行方法交换
+(void)load{


    //获取自己设定的 setKn_PlaceHolder 方法
    Method setKn_PlaceholderMehtod = class_getInstanceMethod(self, @selector(setKn_PlaceHolder:));

    //获取自己设定的 系统的 setPlaceholder 方法
    Method setPlaceholderMethod = class_getInstanceMethod(self, @selector(setPlaceholder:));

    //对2个方法进行交换
    method_exchangeImplementations( setKn_PlaceholderMehtod, setPlaceholderMethod);

   //交换方法后 setKn_PlaceHolder 就变成 setPlaceholder
   //交换方法后 setPlaceholder    就变成 setKn_PlaceHolder
}

//先设置一个有这样功能的方法
-(void)setKn_PlaceHolder:(NSString *) placeholder{

    //开始用系统的 设置占位文字
//    [self setPlaceholder:placeholder];


    //交换方法后 setPlaceholder    就变成 setKn_PlaceHolder
    //所以用setKn_PlaceHolder
    [self setKn_PlaceHolder:placeholder];

    //设置占位文字颜色
    [self setPlaceholderColor:self.placeholderColor];

}

-(void)setPlaceholderColor:(UIColor *)placeholderColor{

    //先保存占位文字的颜色
    objc_setAssociatedObject(self, @"placeholderColor", placeholderColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    //用到的时候在给他


    //获取自带的私有控件,取出系统私有属性
    UILabel *placeholderLabel=[self valueForKey:@"placeholderLabel"];

    //设置颜色
    placeholderLabel.textColor=placeholderColor;
}

-(UIColor *)placeholderColor{

    //取用的时候把颜色给他
    return objc_getAssociatedObject(self, @"placeholderColor");
}

@end

我是KNSky,愿您每天开心 ^_^

Create Your Own Visual Basic Add-Ins

Create Your Own Visual Basic Add-InsBy S.S. AhmedRating: 3.7 out of 5Rate this article docume...
  • sonicdater
  • sonicdater
  • 2002-03-09 18:00:00
  • 922

iOS-改变UITextField的占位文字颜色(三种)

有时,UITextField自带的占位文字的颜色太浅或者不满足需求,所以需要修改,而UITextField没有直接的属性去修改占位文字的颜色,所以只能通过其他间接方式去修改。例如:系统默认的占位文字颜...
  • Mazy_ma
  • Mazy_ma
  • 2016-06-28 14:19:18
  • 3355

UITextField-修改占位文字和光标的颜色,大小

一.设置占位文字的颜色 方法一:利用富文本 /** 手机号输入框 */ @property (weak, nonatomic) IBOutlet UITextField *phoneTextFie...
  • u012907783
  • u012907783
  • 2016-11-14 12:03:14
  • 510

UITextView实现占位文字

UITextField *textField默认的情况 1.只能显示一行文字 2.有占位文字UITextView *textView默认的情况 2.能显示任意行文字 2.没有占位文字文...
  • u013094208
  • u013094208
  • 2016-08-08 22:49:12
  • 554

UITextField占位文字颜色-attributedPlaceholder

如图,密码框是默认的占位文字的颜色,手机号是我们修改过后的。 代码如下:// 占位文字属性 NSMutableDictionary *attrs = [NSMutableDictionary...
  • github_26672553
  • github_26672553
  • 2016-07-08 11:45:29
  • 210

iOS开发中设置UITextField的占位文…

在iOS开发中,对于很多初学者而言,很有可能碰到需要修改UITextField的占位文字的颜色,以及当UITextField成为第一响应者后光标的颜色,那么下面小编就介绍一下修改占位文字和光标的颜色。...
  • lausen34
  • lausen34
  • 2016-08-05 13:34:13
  • 749

UITextField字体颜色和默认字体颜色

UITextField *searchField = [searchBar valueForKey:@&quot;_searchField&quot;]; // 输入文本颜色 sear...
  • chenjin360
  • chenjin360
  • 2016-10-20 16:35:14
  • 2152

UITextField设置了占位文字内容之后,才能设置占位文字的颜色

  • baohanqing
  • baohanqing
  • 2016-05-13 08:06:05
  • 296

UITextField的左边的占位空格

用于在textField的左边 产生占位空格 -(void)creatView {     UITextField* companyNameF = [[UITextField...
  • shanchelicun
  • shanchelicun
  • 2015-11-18 14:47:03
  • 589

UIsearchBar背景颜色的改变,占位字符的颜色改变,占位字符字体大小改变

搜索框原生的也可以使用 但是根据设计师的要求呢,原生的往往满足不了需求,这里对搜索框进行简单的改变 首先去掉搜索框的背景 for (UIView *view in _searchBar.su...
  • God_Qiang
  • God_Qiang
  • 2015-12-17 17:33:18
  • 1222
收藏助手
不良信息举报
您举报文章:runtime-运行时动态添加占位文字颜色-UITextField
举报原因:
原因补充:

(最多只允许输入30个字)