Ошибочные UIPageControls - PullRequest
       10

Ошибочные UIPageControls

0 голосов
/ 25 июня 2010

Я использую два UIPageControls в представлении, чтобы отразить главы и страницы.Поэтому я определил один UIPageControl с именем chapterCount и один с именем pageCount, чтобы показать, где находится пользователь.Я обращаюсь с перелистыванием страниц, а не с помощью UIPageControls (поэтому для них не определены методы).

Я изменяю их значения по мере того, как пользователь меняет страницы со следующим кодом:

chapterCount.numberOfPages = chapters;
chapterCount.currentPage = chapterNumber;

pageCount.numberOfPages = pages;
pageCount.currentPage = pageNumber;

[chapterCount updateCurrentPageDisplay];
[pageCount updateCurrentPageDisplay];

Где главы, chapterNumber, pages и pageNumber все являются целыми числами.

Первый раз, когда я пролистываю страницы, он обычно работает нормально, но когда я перехожу к предыдущей главе или начинаю новую главу, первая (или последний в зависимости от направления) точка не отображается.Пожалуйста, смотрите изображение (в верхней половине отсутствует точка, в нижней - ОК).

альтернативный текст http://img80.imageshack.us/img80/3339/pagecontrol.png

Это тот же код, обновляющий элементы управления, и иногда я получаю точку, иногда нет.Когда я проверяю переменные с помощью NSLOG, они правильные (например, одинаковые для обеих картин выше).

Я проверил документацию Apple и попробовал их пример, но не повезло.

С чего начать устранение неполадок?Я схожу с ума !!

Ответы [ 2 ]

5 голосов
/ 29 июня 2010

Я наконец-то нашел проблему :-)

UIPageControl, которому присвоено значение 0 для количества страниц, не будет отображаться правильно при следующем обновлении. Я читал номера глав и страниц из массива, и в начале (скажем, обложка книги) нет страниц и глав, которые можно показать, поэтому я с радостью установил их на 0. Так как я не хотел изменять исходные данные В моем массиве я использовал MAX (страниц, 1) для numberOfPages, так что теперь он работает как по маслу.

0 голосов
/ 25 июня 2010

Вы уверены, что ваши представления chapterCount и pageCount не равны нулю? У вас могут быть действительные значения весь день, сообщение на nil ничего не делает и возвращает nil. Дважды проверьте свой обзор и проводку / разводку контроллера при смене глав.

EDIT:

подтвердите, что размер элемента управления достаточно велик, чтобы вместить все ваши страницы, и границы просмотра не обрезаны. Например, если у вас было 10 страниц, а «текущей» страницей было 10, но было видно только 9 точек, это выглядело бы так, как будто ничего не выделено, потому что белая точка была бы вырезана из видимой области, находясь вне видимой области. границы. Вы можете настроить размер динамически, используя это:

- (CGSize)sizeForNumberOfPages:(NSInteger)pageCount
...