UIScrollView, не показывающий индикатор прокрутки

У меня есть UIScrollView, который я создаю и размер динамично с помощью...

scrollView.contentSize = CGSizeMake(scrollView.frame.size.width , length);

Я тогда добавляю subviews к UIScrollView. Я действительно имею scrollView.showsVerticalScrollIndicator = YES;

Когда прокрутка индикатора прокрутки никогда не появляется.

Даже если я звоню [scrollView flashScrollIndicators] ничего не происходит.

Идеи?

25
задан George 7 January 2010 в 22:44
поделиться

3 ответа

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

После проверки в моем цикле, если подпредставление действительно было того типа, который я хотел удалить, появились индикаторы прокрутки:

for (NSObject * subview in [[[scrollView subviews] copy] autorelease]) {
    if ([subview isKindOfClass:[MySubView class]]) {
       [(MySubView*)subview removeFromSuperview];
    }
}   

Обновление: изменен код на предложение Николая

66
ответ дан 28 November 2019 в 17:40
поделиться

Заметили это, когда UIScrollView был горизонтальной полосой 48 px высотой, прокручиваемой горизонтально. Может быть, Какао решит, что область слишком мала для индикатора прокрутки...

.
0
ответ дан 28 November 2019 в 17:40
поделиться

Когда я имел дело с этим раньше, в моей реализации сетки, я иногда получал некоторые ячейки поверх индикатора прокрутки. Чтобы исправить это, я теперь вставляю подвиды в индекс 0, а не добавляю их, что добавляет их в начало. Так что попробуйте что-нибудь вроде этого:

[scrollview insertSubview: subview atIndex: 0];

14
ответ дан 28 November 2019 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: