设置UIPageControl的CurrentPageIndicatorTintColor时出现NSRangeException

Sun*_*kas 4 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;
Run Code Online (Sandbox Code Playgroud)

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

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

有任何想法吗?

Sun*_*kas 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;
Run Code Online (Sandbox Code Playgroud)