NSRangeException при установке CurrentPageIndicatorTintColor UIPageControl


Я пытаюсь изменить свойства цвета объекта UIPageControl из кода. Однако он терпит крах. Настройка свойств из конструктора интерфейсов работает просто отлично.

Код:

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 4

1 ответ:

Нашел проблему. Похоже, это ошибка в 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;