uiimageview касается проблемы

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

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

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

как я могу активировать прикосновения только к просмотрам изображений, присутствующим в моем контроллере просмотра.

заранее спасибо..


person cancerian    schedule 12.09.2011    source источник


Ответы (4)


Что вы можете сделать, так это в методе touchesBegan: вы можете проверить, какое местоположение в вашем представлении выбрано, используя

CGPoint point = [recognizer locationInView:self];

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

for(i = 0; i < 5; i++)
{
    if(CGRectContainsPoint(imageView.frame, point))
    {
        // do something.
    }
}
person Robin    schedule 12.09.2011

UITouch *touch = [touches anyObject];
CGPoint offSetPoint = [touch locationInView:myImageView];

Теперь вы определили только объект myImageView для получения прикосновений. Напишите эти строки в метод touchesBegan или touchesEnded, как вам нужно ... Надеюсь, это поможет .... Не забудьте установить для свойства userInteractionEnabled изображения YES, чтобы прикосновения работали.

person stack2012    schedule 12.09.2011
comment
вам нужно изменить диапазон координат, чтобы касания обнаруживались только при просмотре изображения - person stack2012; 13.09.2011

Установите imageView.userInteractionEnabled=YES;, и вы можете работать с методами касаний в самом imageView, например. touchesBegan: Вы можете работать с этими методами для обработки перетаскивания карточек.

person Madhu    schedule 12.09.2011
comment
спасибо, но нет, это работает на весь вид. я хочу только на просмотр изображений - person cancerian; 13.09.2011

Вы также можете создать представление UIControl, затем полностью заполнить его UIImageView, а затем просто перехватить события касания в UIControl.

person Engeor    schedule 12.09.2011
comment
моя игра требует просмотра и небольших изображений в ней - person cancerian; 13.09.2011