Исчезающий индикатор UIScrollView при вращении - PullRequest
0 голосов
/ 07 марта 2012

У меня есть две проблемы с представлением прокрутки.

(1) Когда мое представление прокрутки поворачивается, индикатор просмотра прокрутки исчезает.Я вызываю setFrame, setContentSize и setContentOffset при вращении.В представлении прокрутки много подпредставлений, поэтому размер контента не маленький.Все мои представления таблицы хороши при вращении.

(2) Мое приложение может восстановить позицию чтения пользователя.Поэтому я сохраняю contentOffset представления прокрутки как CGPoint.Если я вызываю setContentOffset для восстановления contentOffset, индикатор прокрутки исчезает.Но когда появляется представление, если значения contentOffset установлены на (0.0, 0.0), индикатор просмотра прокрутки не исчезает.Я попытался использовать scrollRectToVisible: animated :, результат тот же.

Сегодня я потратил более 10 часов на решение этих проблем.Помогите мне ~ пожалуйста.

// часть создания

UIScrollView *scrollViewBoard = [ [ UIScrollView alloc ] initWithFrame: CGRectZero ];
[ scrollViewBoard setShowsHorizontalScrollIndicator: NO ];
[ scrollViewBoard setAlwaysBounceVertical: YES ];
[ scrollViewBoard setDelegate: self ];
[ self addSubview: scrollViewBoard ];
_board = scrollViewBoard;
[ scrollViewBoard release ];

// часть вращения

- ( void ) adjustLayout: ( UIInterfaceOrientation )anOrientation {

MyTrackLog();
switch ( anOrientation ) {
    case UIInterfaceOrientationPortrait:
    case UIInterfaceOrientationPortraitUpsideDown: {
        [ _board setFrame: RECT_PORTRAIT_BOARD ];
    } break;
    case UIInterfaceOrientationLandscapeLeft:
    case UIInterfaceOrientationLandscapeRight: {
        [ _board setFrame: RECT_LANDSCAPE_BOARD ];
    } break;
    default:
        break;
}
[ _board setContentSize: [ self calculateContentSize: anOrientation ] ];
[ _board setContentOffset: _contentOffset ];
[ self arrangeAchievementButtons: anOrientation ];

} // AdjustLayout:

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Возможно, UIScrollView расширяет дисплей.
Вы можете попробовать:

Для суперпредставления UIScrollView следует установить autoResizeSubViews на YESUIScrollView должен установить autoResizingMask на UIViewAutoResizingFlexibleWidth | UIViewAutoResizingFlexibleHeight.
Не использовать setFrame для изменения размера после изменения ориентации

0 голосов
/ 07 марта 2012
[_board flashScrollIndicators];

После изменения ориентации.

...