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,愿您每天开心 ^_^

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

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

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

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

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

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

关于iOS 6.0 以后设置UITextField的左侧图片、文字居中(占位符的位置)

关于iOS 6.0 以后设置UITextField的左侧图片、文字居中(占位符的位置) 通常想实现下面几点: 1、左边显示图片 2、textField中添加默认的占位符(提示文字),并且希望占位符和左...
  • WDJzf
  • WDJzf
  • 2015年11月30日 08:29
  • 3275

UITextField(限制文字输入,调整光标,内容,占位文字显示的位置,以及基本使用)

一:UITextField单行文本内容限制文字输入 实现代码如下:    @interface ZYJEditNickNameViewController (){     UIButton *sav...
  • longshihua
  • longshihua
  • 2015年05月29日 11:02
  • 4371

理解Sass的选择占位符%placeholder

本文由大漠根据Daniel Imms的《Understanding placeholder selectors》所译,整个译文带有我们自己的理解与思想,如果译得不好或有不对之处还请同行朋友指点。如...
  • kaosini
  • kaosini
  • 2014年10月30日 10:03
  • 1033

iOS 自定义textField 显示下划线 左边显示文字 自定义placeholder的颜色和字体

本篇文章是记录下自己学习的内容 , 代码比较low,请各位大神多多指教 效果为 主要实现方法: 实现下划线。重写drawRect方法: - (void)drawRect:(...
  • qq_31927183
  • qq_31927183
  • 2016年06月01日 11:29
  • 1762

iOS-改变UITextField的Placeholder颜色的三种方式

转自:http://blog.csdn.net/mazy_ma/article/details/51775670有时,UITextField自带的Placeholder的颜色太浅或者不满足需求,所以需...
  • u011619283
  • u011619283
  • 2016年11月16日 13:18
  • 7119

改变UITextField placeHolder颜色、字体 、输入光标位置等

我们有时需要定制化UITextField对象的风格,可以添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围,甚至修改placeHo...
  • yidu_blog
  • yidu_blog
  • 2016年03月18日 17:52
  • 581

UITextField-设置大全-placeholder左上角显示

文章转自:http://blog.csdn.net/lbuskeep/article/details/28543183 ·初始化textfield并设置位置及大小   UITextFiel...
  • qq_19742705
  • qq_19742705
  • 2015年08月14日 09:55
  • 2046
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:runtime-运行时动态添加占位文字颜色-UITextField
举报原因:
原因补充:

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