原理:利用runtime訪問控件的私有屬性,然后利用KVC修改私有屬性
// 這里是便利控件所有屬性(public 和 private)找到你想要修改的控件屬性翘鸭,如果你知道你想要修改的控件屬性名葫辐,跳過這一步直接用KVC修改
// 使用前需要導(dǎo)入頭文件#import <objc/runtime.h>
unsigned int count = 0;
Ivar *members = class_copyIvarList([self.myPageControl class], &count);
for (int i = 0; i < count; i++)
{
Ivar var = members[i];
const char *memberAddress = ivar_getName(var);
const char *memberType = ivar_getTypeEncoding(var);
NSLog(@"address = %s ; type = %s",memberAddress,memberType);
}
//KVC 對私有變量的更改
UIImage *normalImage = _normalPageImage ? _normalPageImage : [UIImage imageNamed:@"tweet_btn_share"];
UIImage *currentPageImage = _currentPageImage ? _currentPageImage : [UIImage imageNamed:@"tweet_btn_liked"];
// KVC 主要在這里
[self.myPageControl setValue:normalImage forKeyPath:@"pageImage"];
[self.myPageControl setValue:currentPageImage forKeyPath:@"currentPageImage"];