苹果从某个版本后开始不再暴露自己的私有属性,这给我们开发中带来了一些困扰
比如想要自定义UIPageControl
的图片
要达到如下效果:
通过搜索
UIPageControl
的头文件,并不能发现任何有关image的属性,所以就要用到kvc来进行设置当然也可以使用runtime,但是没有以下方法简便,就不做介绍啦~
核心代码如下:
[self.pageControl setValue:[UIImage imageNamed:@"current"] forKey:@"_currentPageImage"];
[self.pageControl setValue:[UIImage imageNamed:@"other"] forKey:@"_pageImage"];
对于初学者而言_currentPageImage, _pageImage 这些属性是怎么获得的呢?
这里介绍一种方法 : 断点调试
如下:
Snip20160413_2.png
TextField
同样以上的方法,也可以设置TextField占位文字的颜色(默认是灰色的)
设置前:
屏幕快照 2016-04-13 上午1.41.50.png设置后:
效果如下
屏幕快照 2016-04-13 上午1.38.39.png
代码:
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *textField;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UITextField *textField = self.textField;
UILabel *label = [textField valueForKeyPath:@"_placeholderLabel"];
label.textColor = [UIColor blueColor];
}
@end
当然还有更多的属性,神秘的功能,就期待你的发现啦😏
网友评论