2017-10-09 10 views
0

Durch so viele Kombinationen von Versuchen, die Grenzen einer "Selected Box" -Grafik festzulegen, die angezeigt werden soll, wo der Benutzer nur innerhalb einer UIImageView berührte. Weiter geht es nach wie vor die die Super Ansichten KoordinatensystemVerwenden von UIImageViews-Koordinatengrenzen für ein anderes 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

Antwort

0

Make selectedBox sodukoGrid des subview oder ändern Ihr Leitungs Standort in Bezug auf globale Sicht zu bleiben.

let touchPoint = sender.locationInView(view) 
0

(Veröffentlicht im Auftrag der Frage Autor).

Lösung von der anderen Antwort

hinzugefügt einfach das Bildobjekt als ein Subview des Gitterbilds nach Anregung von Benutzern unter beantworten.

sodukoGrid.addSubview(selectedBox) 
Verwandte Themen