Перетащите изображение из одного вида в другой вид в iphone / ipad - PullRequest
1 голос
/ 28 июля 2011

Я столкнулся с проблемой ниже: - Пожалуйста, посмотрите на изображение ниже, что я хочу: enter image description here

Я хочу перетащить изображения по умолчанию из вида 1 в вид 2, и изображения должны быть всегда выброшены в вид1, чтобы их нельзя было перемещать при перетаскивании изображений. я много чего пробовал, но мне удается перетаскивать изображение из одного вида в другой, но в view2 я не могу получить точки касания, поэтому просто добавляю thr в качестве кадра Но я не могу прикоснуться к изображению через view2 и даже в view2 я хочу сделать другие функции, такие как масштабирование и другие, но сначала хочу получить точки соприкосновения в view2. Я даю описание изображения этой проблемы.

Отредактированный вопрос: -

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

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{

    UITouch *touch = [touches anyObject];   
    if ([touch view] == view3) {
        CGPoint location = [touch locationInView:self.view];
        view3.center = location;        
        return;
    }
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
        int tmpValue = 0;
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.5];          
        {
            onceDone = TRUE;
            if(onceDone == TRUE)
            {
                UITouch *touch = [touches anyObject];
                CGPoint pt = [touch locationInView:self.view];
                NSLog(@"X = %f y=%f",pt.x,pt.y);
                view3.center = pt;
                if(view3.frame.origin.x < view2.frame.origin.x )
                   //view3.frame.origin.x < view2.frame.origin.x)
                    [view3 setFrame:CGRectMake(159,view3.frame.origin.y, view3.frame.size.width, view3.frame.size.height)];

            }



        }
    [UIView commitAnimations];
    }

Пожалуйста, помогите мне. это срочно. Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 28 июля 2011

Если вы используете жесты панорамирования, это метод touchesMoved для перетаскивания изображений. Сделайте супер-просмотр view1 и view2 к одному и тому же UIView и вычислите местоположение вашего жеста или точку касания относительно этого общего супер-просмотра. Это означает, что ваш view1 и view2 будет в том же виде, и каждый подвид (изображение) также будет добавлен только в основной вид. Таким образом, вы можете перемещать изображения в главном виде в любое удобное для вас место и выполнять с ними любые операции.

1 голос
/ 21 сентября 2011

Мы работали над аналогичной проблемой, и мы воспользовались этим решением:

  1. У нас есть UIPanGestureRecognizer, добавленный к каждой кнопке.

  2. Когда мы обнаруживаем начало жеста панорамирования, мы создаем объект, который мы хотим перетащить (в данном случае это может быть копия вашего изображения). Вам нужно установить прямоугольник, равный кнопке, или, если вы создаете объект в другом представлении, вам необходимо преобразовать координаты объекта, чтобы объект казался в том же положении, что и кнопка, но внутри его вида.

  3. После этого мы перемещаем последний созданный объект вместо перемещения кнопки.

И вот, хитрость в том, что UIPanGestureRecognizer работает до тех пор, пока вы не отсоедините экран, но он срабатывает, пока вы двигаете пальцем по всему экрану, а не только внутри кнопки!

Я надеюсь, что это работает для вас.

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