проблема с увеличением в UIScrollView на iOS 4.0 - PullRequest
0 голосов
/ 20 августа 2010

Это общий вопрос к конкретной проблеме.

Я использую UIScrollView в приложении, которое отображает фотографии.на iOS <4.0 масштабирование отлично работает.то же самое приложение, работающее на iOS 4.0.x, имеет проблемы с масштабированием.в частности, если изображение не заполняет вид (и черные / верхние полосы появляются сверху / снизу), первый зум прерывистый, а в нижней части экрана отображаются данные мусора. </p>

исходный код для анализаспособ сложный и разложить, чтобы адекватно поделиться здесь.Кто-нибудь может предложить какие-либо области, на которые можно посмотреть, которые могут вызвать это странное поведение?

спасибо!Отметьте

edit: вот код из обработчика двойного касания (заимствован из примера кода tapDetectingImageView):

- (void)tapDetectingImageView:(TapDetectingImageView *)view gotDoubleTapAtPoint:(CGPoint)tapPoint {
    // double tap zooms in
    float newScale = [self zoomScale] * ZOOM_STEP;
    CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint];
    [self zoomToRect:zoomRect animated:YES];
}

Я могу вызвать странность, если я изменю анимированный параметр в вызовеzoomToRect.Когда анимировано НЕТ, мое изображение становится 2 изображения, наложенные друг на друга.нижнее изображение - исходный уровень масштабирования, верхнее изображение - новый уровень масштабирования.если я проведу пальцем по экрану, изображение будет обновлено.Это почти как если бы вызов layoutSubviews или DrawRect не вызывался.

1 Ответ

0 голосов
/ 20 августа 2010

Это может или не может быть связано, но способ, которым UIScrollView работал с масштабными коэффициентами, изменился недокументированным способом в iPhone OS 3.2+.

Ранее, если вы использовали -scrollViewDidEndZooming:withView:atScale: для повторного рендеринга вашего контента, применяя преобразование идентичности к представлению, а затем резко перерисовывая изображение с новым масштабным коэффициентом, UIScrollView игнорировал бы это и продолжал передавать вам абсолютные масштабные коэффициенты, основанные на начальный размер представления.

В iPhone OS 3.2+ UIScrollView теперь дает вам относительный масштабный коэффициент, основанный на том, когда вы в последний раз сбрасывали преобразование представления содержимого, чтобы оно стало преобразованием идентичности. Это может привести к значительным различиям в масштабировании между различными версиями ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...