iPhone SDK: отключение просмотра для UIScrollView - PullRequest
0 голосов
/ 27 февраля 2009

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

Вот изображение того, что я пытаюсь сделать:

alt text

Функционально, это на самом деле работает, в том смысле, что вы можете перетащить значки вверх на белую доску нормально ... но вы не можете видеть их при перетаскивании ... что недопустимо.

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

У кого-нибудь есть другие возможные решения для этого? Или, может быть, есть альтернативные подходы? Я подумал, может ли работать просмотр страницы, но еще не пробовал ... и это совсем не такое хорошее решение, как представление с прокруткой.

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

Ответы [ 2 ]

7 голосов
/ 27 февраля 2009

Я думаю, вы ищете свойство clipsToBounds в UIView. Я успешно использовал его с UIScrollView:

scrollView.clipsToBounds = NO;

Однако при перетаскивании, которое вы хотите выполнить из вида прокрутки в вид игры, может потребоваться удалить вид значка из вида прокрутки, поместить его в суперпредставление в положение, соответствующее его видимой позиции в представлении прокрутки рассчитывается с использованием источника представления прокрутки и смещения содержимого) и отслеживает движения пальцев пользователя. После отпускания прикосновения либо перетащите его на игровой вид в правильном положении, либо верните его в режим прокрутки.

1 голос
/ 27 февраля 2009

Я не уверен на 100%, что понимаю вопрос, но я думаю, что вы должны взглянуть на z-порядок вида прокрутки и белой доски. Возможно, перетаскивание просто идет за доской.

Если это не удастся, было бы полезно увидеть все границы иерархии вашего взгляда.

Я также думаю, что лучшим решением может стать создание «спрайта» для анимации под пальцем игрока - вы можете сместить точку притяжения спрайта от сенсорного местоположения, чтобы игрок мог видеть, что они перетаскивают.

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