У меня есть UIScrollView, который я создаю и размер динамично с помощью...
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width , length);
Я тогда добавляю subviews
к UIScrollView
. Я действительно имею scrollView.showsVerticalScrollIndicator = YES;
Когда прокрутка индикатора прокрутки никогда не появляется.
Даже если я звоню [scrollView flashScrollIndicators]
ничего не происходит.
Идеи?
Была та же проблема, но не удалось найти причину. Последний ответ дал заключительный намек: всякий раз, когда я добавлял новые подпредставления, я сначала удалял все существующие подпредставления из прокрутки (и, по-видимому, также индикаторы прокрутки).
После проверки в моем цикле, если подпредставление действительно было того типа, который я хотел удалить, появились индикаторы прокрутки:
for (NSObject * subview in [[[scrollView subviews] copy] autorelease]) {
if ([subview isKindOfClass:[MySubView class]]) {
[(MySubView*)subview removeFromSuperview];
}
}
Обновление: изменен код на предложение Николая
Заметили это, когда UIScrollView был горизонтальной полосой 48 px высотой, прокручиваемой горизонтально. Может быть, Какао решит, что область слишком мала для индикатора прокрутки...
.Когда я имел дело с этим раньше, в моей реализации сетки, я иногда получал некоторые ячейки поверх индикатора прокрутки. Чтобы исправить это, я теперь вставляю подвиды в индекс 0, а не добавляю их, что добавляет их в начало. Так что попробуйте что-нибудь вроде этого:
[scrollview insertSubview: subview atIndex: 0];