ios-runtime(swift)使用,修改pageControl的小圓點
阿新 • • 發佈:2018-12-26
1,先看需求
將一圖中的pageControl的圓形小點,改成二圖的樣子
2, 在pageControl裡面沒有找到有關修改圖片的屬性,那麼現在怎麼解決這個問題呢,一般就是自己定製一個pageControl(比較麻煩的);另外就是,利用執行時+kvc來修改他的屬性,直接上程式碼:
//MARK:- runtime
// 修改pageControl的小點樣式
extension ViewController {
func runtime() {
// 1, 利用runtime 遍歷出pageControl的所有屬性
var count : UInt32 = 0
let ivars = class_copyIvarList(UIPageControl.self, &count)
for i in 0..<count {
let ivar = ivars?[Int(i)]
let name = ivar_getName(ivar)
print(String(cString: name!))
/* 打印出來的所有屬性
_lastUserInterfaceIdiom
_indicators
_currentPage
_displayedPage
_pageControlFlags
_currentPageImage // 圖片樣式
_pageImage // 圖片樣式
_currentPageImages
_pageImages
_backgroundVisualEffectView
_currentPageIndicatorTintColor
_pageIndicatorTintColor
_legibilitySettings
_numberOfPages
*/
}
// 2, 利用kvc修改圖片
pageControl.setValue(UIImage(named: "page"), forKey: "_pageImage")
pageControl.setValue(UIImage(named: "currentpage"), forKey: "_currentPageImage")
}
}