2017-11-02 5 views
0

Wie kann ich eine UIView A in ein Quadrat verschieben (also eine andere UIView B, die nicht die Eltern von A ist)?UIView in eine andere UIView verschieben


Was ich getan habe: Ich overrode Methoden TouchesBegan, TouchesMoved und TouchesEnded A zu bewegen, und wenn A die linke mit B linken zusammenfällt, vermied ich A nach links zu bewegen, aber manchmal führt dies zu einer seltsam und nicht glatt bewegen (Gleiches gilt für oben, unten und rechts), also muss es einen besseren Weg geben.

Antwort

2

Wenn Sie möchten, dass ViewA nur im Bereich einer bestimmten Ansicht ziehbar ist. Dies könnte einfacher zu definieren sein, wenn Ihre Grenzen kompliziert sind.

- (IBAction)handleDrag:(UIButton *)sender forEvent:(UIEvent *)event 
{ 
    CGPoint point = [[[event allTouches] anyObject] locationInView:self.someView]; 

    if ([self.viewB pointInside:point withEvent:nil]) 
    { 
     sender.center = point; 
     //Only if the gesture center is inside the specified view will the button be moved 
    } 
}