我有使用scrollview和pageContoll的自定义视图。
let backScrollView = NSBundle.mainBundle().loadNibNamed("BackScrollView", owner: self, options: nil)[0] as! BackScrollView
我尝试设置currentPageIndicatorTintColor
if brightnes > 200
{
backScrollView.pageControl.currentPageIndicatorTintColor = UIColor.blackColor()
}
else
{
backScrollView.pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
}
我在iPhone 5S(iOS 9.2)上运行此代码,代码工作没有问题,但是当我在iPhone 5(iOS 8.4)上运行此代码时,我会出错:
*由于未捕获的异常'NSRangeException'而终止应用程序,原因:'* - [__ NSArrayM objectAtIndex:]:索引4294967295超出 空数组'
的边界
我知道错误出现在这行代码中
backScrollView.pageControl.currentPageIndicatorTintColor = UIColor.blackColor()
我是使用print计算的。
我做错了什么?
答案 0 :(得分:2)
最可能的原因是您的网页控件的numberOfPages
等于0,或currentPage
无效(等于-1)。
您可以尝试以下
let pageControl = backScrollView.pageControl
if (pageControl.numberOfPages > 0 && pageControl.currentPage >= 0 && pageControl.currentPage < pageControl.numberOfPages) {
if brightnes > 200 {
pageControl.currentPageIndicatorTintColor = UIColor.blackColor()
} else {
pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
}
} else {
print("Invalid pageControl state : numberOfPages = \(pageControl.numberOfPages); currentPage = \(pageControl.currentPage)")
}