2017-10-09 6 views
0

Vous êtes passés par tant de combinaisons pour essayer de définir les limites d'un graphique 'Selected Box' qui doit s'afficher là où l'utilisateur touche uniquement UIImageView. Il continue à coller les super vues système de coordonnéesUtilisation des limites d'une coordonnée UIImageViews pour un autre UIImageView

class ViewController: UIViewController { 
@IBOutlet weak var selectedBox: UIImageView! 
@IBOutlet weak var sodukoGrid: UIImageView! 


override func viewDidLoad() { 
    super.viewDidLoad() 
    selectedBox.hidden = true 

    selectedBox.frame.origin.x = sodukoGrid.bounds.minX 
    selectedBox.frame.origin.y = sodukoGrid.bounds.minY 


    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("tapAction:")) 

    self.sodukoGrid.userInteractionEnabled = true 
    self.sodukoGrid.addGestureRecognizer(tapGestureRecognizer) 

} 

func tapAction(sender: UITapGestureRecognizer) { 

    let touchPoint = sender.locationInView(self.sodukoGrid) 

    print(touchPoint) 

    selectedBox.center.x = CGFloat(touchPoint.x) 
    selectedBox.center.y = CGFloat(touchPoint.y) 
} 

Image showing the selected box graphic still sticking to the superviews bounds

Répondre

0

Faire la sous-vue de selectedBox sodukoGrid ou changer votre robinet emplacement par rapport à la vue globale.

let touchPoint = sender.locationInView(view) 
0

(Publié au nom de l'auteur de la question).

Solution de l'autre réponse

simplement ajouté l'objet d'image en tant que sous-vue de l'image de la grille après la suggestion des utilisateurs réponse ci-dessous.

sodukoGrid.addSubview(selectedBox)