2017-02-18 4 views

ответ

0
// The Pan Gesture 
func createPanGestureRecognizer(targetView: UIImageView) 
{ 

    var panGesture = UIPanGestureRecognizer(target: self, action:("handlePanGesture:")) 
    targetView.addGestureRecognizer(panGesture) 
} 

// THE HANDLE 

    func handlePanGesture(panGesture: UIPanGestureRecognizer) { 


    //  get translation 

    var translation = panGesture.translationInView(view) 
    panGesture.setTranslation(CGPointZero, inView: view) 
    println(translation) 


    //create a new Label and give it the parameters of the old one 
    var label = panGesture.view as UIImageView 
    label.center = CGPoint(x: label.center.x+translation.x, y: label.center.y+translation.y) 
    label.multipleTouchEnabled = true 
    label.userInteractionEnabled = true 

    if panGesture.state == UIGestureRecognizerState.Began { 

     //add something you want to happen when the Label Panning has started 
    } 

    if panGesture.state == UIGestureRecognizerState.Ended { 

     //add something you want to happen when the Label Panning has ended 

    } 


    if panGesture.state == UIGestureRecognizerState.Changed { 

    //add something you want to happen when the Label Panning has been change (during the moving/panning) 

    } 

    else { 

     // or something when its not moving 
    } 

    } 
2

Вы можете проверить, что 2 вида пересекаются, проверяя, пересекаются ли их рамки. Вот пример:

let view1 = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) 
let view2 = UIView(frame: CGRect(x: 90, y: 90, width: 50, height: 50)) 

extension UIView { 
    func intersects(_ otherView: UIView) -> Bool { 
     if self === otherView { return false } 
     return self.frame.intersects(otherView.frame) 
    } 
} 

print(view1.intersects(view2)) // Prints true because the 2 views are intersecting 

Вы можете позвонить intersects(_:) каждый раз при обновлении любого из ваших взглядов кадров (то есть изменить их размер и/или положение.). Если метод возвращает true, покажите предупреждение, используя UIAlertController.

4

насчет

if (CGRectIntersectsRect(secondView.frame, sender.frame)) { 
     // Do something 
    } 
Смежные вопросы