O__O “… 设计师给的设计图总是那么的不可思议,这次的UIPageControl的小点点整成了方形其他颜色,而默认的小点点则为圆形。被稍稍恶心了一下之后,还得默默地去实现。最近在研究runtime机制,就想看看UIPageControl都有哪些隐藏属性,结果发现了_pageImage 和 _currentPageImage,试了下果然可以!不过要注意判断是否包含此属性,以防系统更新之后给去掉了,那就会造成崩溃,而崩溃是程序员容忍不了的!
// 初始化一个属性列表数组 var ivarName_pageControl: [String] = [] var count: uint = 0 // 获取属性列表 let list = class_copyIvarList(UIPageControl.classForCoder(), &count) for index in 0 ... count-1 { // 获取属性名称,ivar_getTypeEncoding 可获取属性类型 let ivarName = ivar_getName( list?[ Int(index) ] ) let name = String.init(cString: ivarName!) ivarName_pageControl.append(name) } // 判断是否包含这两个属性 if ivarName_pageControl.contains("_pageImage") && ivarName_pageControl.contains("_currentPageImage") { lifeServicePageControl.setValue(UIImage.init(named: "首页_首页_PageControl_Normal"), forKey: "_pageImage") lifeServicePageControl.setValue(UIImage.init(named: "首页_首页_PageControl_Current"), forKey: "_currentPageImage") }
done。
Swift: 巧改UIPageControl的默认图片
最新推荐文章于 2024-06-28 15:40:25 发布