Масштабирование в UIScrollView не является плавным - PullRequest
3 голосов
/ 01 декабря 2009

Я создал игру клон тральщика в iphone. Моя реализация ячеек в сетке такова, я создал UIView и добавил кнопки в UIView, а затем я добавил UIView в UIScrollView, но каждый раз, когда я уменьшаю или увеличиваю масштаб с помощью метода zoomToRect UIScrollView, масштабирование не является плавным и уменьшение было искажено. Как реализовать плавное масштабирование в UIScrollView?

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Я бы попробовал преобразовать ваше представление контента в растровое изображение, когда начинается прокрутка или масштабирование, и заменять большую сетку кнопок растровым изображением, пока прокрутка / масштабирование не будет завершена. Протокол UIScrollViewDelegate должен предоставить вам необходимую информацию, чтобы знать, когда нужно поменять местами растровое изображение. Частично проблема заключается в том, что представление вашего контента требует слишком много вычислений (все эти кнопки).

Более сложный подход заключается в том, чтобы заново реализовать игровую сетку на более низком уровне, используя coreanimation и более фундаментальную обработку сенсорных событий, но это может быть излишним, если хак с растровым изображением работает достаточно хорошо.

0 голосов
/ 03 февраля 2011

Вы знаете, как в приложении карт при панорамировании или масштабировании появляются серые плитки? Это означает, что iPhone в настоящее время загружает плитки. В Safari есть аналогичный эффект, когда Safari устанавливает клетчатый серый цвет вместо веб-страницы, поскольку в данный момент он отображает его, и это будет на мгновение. Оба из них означают, что прокрутка не будет ждать загрузки контента перед отображением области, это позволит плавной прокрутке.

Вы можете попробовать поискать здесь [http://stackoverflow.com/questions/1098234/optimized-image-loading-in-a-uiscrollview] для некоторых идей, и точка в правильном направлении будет состоять в том, чтобы использовать многопоточность для загрузки представлений в фоновом режиме при отображении серого на его месте.

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