MacOS Catalina 10.15.4
Xcode 11.6
Swift version 4
ラベルだけをドラッグして移動させる方法が分かりません。
こちらのサイト等を参考にしたのですが、背景をドラッグすると背景まで動いてしまいます。
また、こちらのサイトを参考に以下のようにしてみたのですが、近い挙動が得られるものの背景をドラッグしてもラベルが動いてしまいます。
欲しい挙動としては、ラベルだけに反応し、ラベルだけが動くということです。
苦し紛れに、ラベルにUITapGestureRecognizer
をセットして、、、と考えてみたのですが明らかに間違っており、良い方法がないか悶えております。
大変お手数ですが、どなたかご教示頂けませんでしょうか。
宜しくお願い致します。
Swift4
1import UIKit 2 3 class ViewController: UIViewController{ 4 5 6 var dx : CGFloat = 0 7 var dy : CGFloat = 0 8 9 @IBOutlet weak var label: UILabel! 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 } 14 15 // ドラッグ時に呼ばれる 16 override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) { 17 // タッチイベントを取得 18 let touchEvent = touches.first! 19 20 // ドラッグ前の座標, Swift 1.2 から 21 let preDx = touchEvent.previousLocation(in: self.view).x 22 let preDy = touchEvent.previousLocation(in: self.view).y 23 24 // ドラッグ後の座標 25 let newDx = touchEvent.location(in: self.view).x 26 let newDy = touchEvent.location(in: self.view).y 27 28 // ドラッグしたx座標の移動距離 29 dx = newDx - preDx 30 print("x:(dx)") 31 32 // ドラッグしたy座標の移動距離 33 dy = newDy - preDy 34 print("y:(dy)") 35 36 // 移動分を反映させる 37 label.frame.origin.x += dx 38 label.frame.origin.y += dy 39 40} 41 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/06 10:43