Мне нужно реализовать UIPageControl
с пользовательскими изображениями вместо обычной точки. Поэтому я создаю собственный класс и подключаю его через раскадровку. Начиная с ios7 подвид UIPageControl содержит UIView
вместо UIImageView
. Подвиды результирующих UIView
(UIIpageControl
подвидов) не содержат подзаголовков, поэтому я получаю сообщение об ошибке:
Неустранимая ошибка: неожиданно найдено nil при развертывании необязательного значения.
Где я мог ошибиться?
class WhitePageControl:UIPageControl{
let activeImage = UIImage(named: "dot_white")
let inactiveImage = UIImage(named: "dot_white_e")
override init(frame: CGRect){
super.init(frame: frame)
}
required init(coder aDecoder: NSCoder){
super.init(coder: aDecoder)
}
func updateDots(){
println(self.subviews.count) // 3
println(self.numberOfPages) // 3
for var index = 0; index < self.subviews.count; index++ {
println(index)
var dot:UIImageView!
var dotView:UIView = self.subviews[index] as UIView
println("1")
for subview in dotView.subviews{ // NIL HERE
println("2")
if subview.isKindOfClass(UIImageView){
println("3")
dot = subview as UIImageView
if index == self.currentPage{ dot.image = activeImage }
else{ dot.image = inactiveImage }
}
}
}
}
func setCurrentPage(value:Int){
super.currentPage = value
self.updateDots()
}
}