Переместить UIView только по горизонтали - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть 2 UIViews (placardView и PlacardView2), которые я хотел бы ограничить их при касании перемещать горизонтально, но не вертикально, используя метод touchesMoved. Моя мысль состояла в том, чтобы сделать координату Y равной себе, но я не могу заставить ее работать синтаксически в Xcode, поскольку я новичок в такого рода вещах.

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

    UITouch *touch = [touches anyObject];

    // If the touch was in the placardView, move the placardView to its location
    if ([touch view] == placardView) {
        CGPoint location = [touch locationInView:self];
        placardView.center = location;
        placardView.center.y = placardView.center.y;//error is here
        return;
    }
    if ([touch view] == placardView2) {
        CGPoint location = [touch locationInView:self];
        placardView2.center = location;
        placardView2.center.y = placardView2.center.y;//error is here
        return;
   }
}

1 Ответ

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

Вы ничего не измените, присвоив center.y себе - плюс это уже изменилось с помощью placardView2.center = location; назначение. Вместо этого вам, вероятно, следует назначить только новую координату x:

CGPoint placardCenter = placardView2.center;
placardCenter.x = location.x;
placardView2.center = placardCenter;
...