蘋果從某個(gè)版本后開始不再暴露自己的私有屬性,這給我們開發(fā)中帶來(lái)了一些困擾
比如想要自定義UIPageControl
的圖片
要達(dá)到如下效果:
通過(guò)搜索
UIPageControl
的頭文件,并不能發(fā)現(xiàn)任何有關(guān)image的屬性,所以就要用到kvc來(lái)進(jìn)行設(shè)置當(dāng)然也可以使用runtime,但是沒有以下方法簡(jiǎn)便,就不做介紹啦~
核心代碼如下:
[self.pageControl setValue:[UIImage imageNamed:@"current"] forKey:@"_currentPageImage"];
[self.pageControl setValue:[UIImage imageNamed:@"other"] forKey:@"_pageImage"];
對(duì)于初學(xué)者而言_currentPageImage, _pageImage 這些屬性是怎么獲得的呢?
這里介紹一種方法 : 斷點(diǎn)調(diào)試
如下:
TextField
同樣以上的方法,也可以設(shè)置TextField占位文字的顏色(默認(rèn)是灰色的)
設(shè)置前:
設(shè)置后:
效果如下
代碼:
#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
當(dāng)然還有更多的屬性,神秘的功能,就期待你的發(fā)現(xiàn)啦??