Как я могу отобразить пользовательский вид в UIScrollView с различными уровнями масштабирования, не искажая вид? - PullRequest
3 голосов
/ 09 января 2009

Сценарий:

У меня есть пользовательский вид (подкласс UIView), который рисует игровое поле. Чтобы включить возможность увеличения и перемещения по доске, я добавил свой вид в качестве подпредставления UIScrollView. Этот вид работает, но игровая доска отображается неправильно. Все немного нечетко, и ничего не выглядит правильно.

Вопрос:

Как я могу заставить мой взгляд правильно перерисовываться в разных масштабах? Я предоставляю свой вид с текущим масштабом и отправляю ему сообщение setNeedsDisplay после того, как представление прокрутки выполнит увеличение / уменьшение масштаба, но игровая доска по-прежнему отображается неправильно Мой взгляд должен перерисовывать игровое поле в зависимости от уровня масштабирования, но этого не происходит. Представление прокрутки выполняет общее преобразование на подпредставлениях? Есть ли способ отключить это поведение?

1 Ответ

0 голосов
/ 10 апреля 2010

Самый простой способ сделать это - визуализировать игровое поле с очень высоким разрешением, а затем позволить ScrollView обрабатывать его масштабирование вниз до размера вашего дисплея автоматически.

По сути, установите contentSize вашего ScrollView на что-то большое (скажем, 1024x1024) и сделайте игровое поле одним гигантским видом внутри него того же размера (скажем, 1024x1024). Затем просто позвольте ScrollView обработать все вопросы масштабирования. Вам даже не нужно перехватывать setNeedsDisplay или что-то еще; Что касается вашей игры, то она всегда рендерится с самым высоким разрешением.

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