设置UIPageControl的CurrentPageIndicatorTintColor时出现NSRangeException

时间:2014-01-18 21:04:25

标签: cocoa-touch xamarin.ios

我正在尝试从代码中更改UIPageControl对象的颜色属性。然而它崩溃了。从Interface Builder设置属性就可以了。

代码:

float x = isLight ? 0.8f : 0.2f;
UIColor markedColor = UIColor.FromRGB (x, x, x);
pageControll.CurrentPageIndicatorTintColor = markedColor;
pageControll.PageIndicatorTintColor = isLight ? UIColor.White : UIColor.Black;

我得到的错误(在第三行):

Objective-C exception thrown. Name: NSRangeException Reason: *** -[__NSArrayM objectAtIndex:]: index 4294967295 beyond bounds for empty array

有什么想法吗?

1 个答案:

答案 0 :(得分:10)

发现问题。似乎是SDK中的一个错误。

由于我还没有收到“填充”UIPageControl的数据,因此属性Pages设置为0.将此更改为1解决了它。

float x = isLight ? 0.8f : 0.2f;
UIColor markedColor = UIColor.FromRGB (x, x, x);
if (pageControll.Pages < 1) {
    pageControll.Pages = 1;
}
pageControll.CurrentPageIndicatorTintColor = markedColor;
pageControll.PageIndicatorTintColor = isLight ? UIColor.White : UIColor.Black;