Wenn ich mein UIPageControl anpassen musste, benutzte ich this und this Lösung.Benutzerdefiniertes UIPageControl mit Punktbildern
leicht es für die neue Version der schnellen Modifizierung haben wir:
class myPageControl: UIPageControl {
var activeImage: UIImage!
var inactiveImage: UIImage!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
activeImage = UIImage(named: "active.png")!
inactiveImage = UIImage(named: "inactive.png")!
}
func updateDots()
{
for i in 0 ..< self.subviews.count
{
let dot : UIImageView = imageViewForSubview(self.subviews[i])
if (i == self.currentPage) {
dot.image = activeImage
}
else {
dot.image = inactiveImage
}
}
}
func imageViewForSubview(view: UIView) -> UIImageView {
var dot: UIImageView? = nil
if (view.isKindOfClass(UIView)) {
for subview: UIView in view.subviews {
if (subview is UIImageView) {
dot = (subview as! UIImageView)
}
}
if dot == nil {
dot = UIImageView(frame: CGRectMake(0.0, 0.0, view.frame.size.width, view.frame.size.height))
view.addSubview(dot!)
}
}
else {
dot = (view as! UIImageView)
}
return dot!
}
func setPage(page: Int) {
super.currentPage = page
self.updateDots()
}
}
Mein Problem ist, dass ich das Bild nicht ändern kann, wenn Sie ersten App starten. Es ändert sich nur, wenn die Seite geändert wird.
In viewDidLoad()
habe ich setPage(0)
und updateDots()
hinzugefügt, aber es gibt kein Ergebnis. Was könnte ich falsch machen?
Hier ist eine bessere Idee für den Aufruf von "updateDots()". Habe es noch nicht ausprobiert, aber Dmitry schlägt vor, numberOfPages und currentPage-Variablen zu überschreiben -> http://stackoverflow.com/questions/12190147/customize-dot-with-image-of-uipagecontrol-at-index-0-of- uipagecontrol/41136917 # 41136917 – CodenameDuchess