1. 程式人生 > >ios-runtime(swift)使用,修改pageControl的小圓點

ios-runtime(swift)使用,修改pageControl的小圓點

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") } }