2017-06-10 11 views
0

私はScrollViewの中にImageViewを持っています。 ここでユーザーは画像上の点を選択し、座標を印刷します。私も座標タップに画像( "ピン")を追加しようとしているが、わからないよよSwiftユーザータップからUIImageViewに画像を追加します。

どのように...では

// MARK: - Outlets 
@IBOutlet weak var containerView: UIView! 
@IBOutlet weak var scrollView: UIScrollView! 
@IBOutlet weak var sharkImage: UIImageView! 

// MARK: - View Did Load 
override func viewDidLoad() { 
    super.viewDidLoad() 

    scrollView.minimumZoomScale = 1.0 
    scrollView.maximumZoomScale = 6.0 

    scrollView.delegate = self 

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapAction)) 

    self.sharkImage.isUserInteractionEnabled = true 
    self.sharkImage.addGestureRecognizer(tapGestureRecognizer) 
} 

// MARK: - Scroll View 
func viewForZooming(in scrollView: UIScrollView) -> UIView? { 
    return sharkImage 
} 

// MARK: - Functions 
func tapAction(sender: UITapGestureRecognizer) { 
    // Get points for the UIImageView 
    let touchPoint = sender.location(in: self.sharkImage) 
    print(touchPoint) 

    // Get points from the image itself 
    let z1 = touchPoint.x * (sharkImage.image?.size.width)!/sharkImage.frame.width 
    let z2 = touchPoint.y * (sharkImage.image?.size.height)!/sharkImage.frame.height 
    print("Touched point (\(z1), \(z2)") 

} 
+1

は 'self.view.addSubview(your_img)'を使用します。 'your_img.frame = CGRect(frame_here)' –

答えて

1

あなたtapAction

let pin = UIImageView(frame: CGRect(x: touchPoint.x - 20, y: touchPoint.y - 20, width: 40, height: 40)) 
pin.image = UIImage(named: "pin") 
sharkImage.addSubview(pin) 

だから何あなたの現在のsharkImageにのxytouchPoint.xtouchPoint.yから新しく追加しています。

+0

Rashwanさん、ありがとうございました - 唯一の欠点は、タップの右下に画像を追加することです。画像をユーザーのタップの中央に配置しません。 – pmanning

+1

@pmanningもちろん、画像を中央に揃えたい。更新されたコードを確認してください。基本的には、幅と高さをマイナスに設定します。見てみな。 –

関連する問題