私はそのイメージに1つのイメージビューとテキストフィールドを持っています。テキストフィールドを下のコードでドラッグ可能にしますが、画面のどこにでもドラッグ可能にすることができます。私は、そのテキストフィールドは、画像ビューの限界でのみドラッグ可能にしたい。 draagedView関数をチェックインするとコメントアウトすると、x値が同じになるので、textfieldはimageviewの左側に止まります。Swiftのドラッグ可能なアイテムへの制限を設定します
私はこの解決策を見つけましたが、私のプロジェクトでうまく動作するように修正することはできません。 Use UIPanGestureRecognizer to drag UIView inside limited area
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let gesture = UIPanGestureRecognizer(target: self, action: #selector(ViewController.draggedView(_:)))
bottomTextField.addGestureRecognizer(gesture)
bottomTextField.isUserInteractionEnabled = true
}
func userDragged(gesture: UIPanGestureRecognizer){
let loc = gesture.location(in: self.view)
self.bottomTextField.center = loc
}
func draggedView(_ sender:UIPanGestureRecognizer) {
let compare = MyimageView.frame.maxX <= bottomTextField.frame.maxX
//if(MyimageView.frame.minX <= bottomTextField.frame.minX && compare)
// {
self.view.bringSubview(toFront: sender.view!)
let translation = sender.translation(in: self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPoint.zero, in: self.view)
// }
}
テキストフィールドの位置を変更して変更すると、テキストフィールドがイメージビューの中央に再び移動します。私はその場所にとどまることを望みます。それをどうすれば解決できますか?ありがとうございました! –
翻訳をオーバーライドする自動レイアウト制約があります。私はこれを新しい疑問として提起するでしょう。 – ganzogo