プログラミングをつい先日始めたばかりです。
インターネットを使用し調べたのですが、どうしても分からないことがあるため、御回答いただければ幸いです。よろしくお願い申し上げます。
前提・実現したいこと
前提はテキストに入力した言葉をボタンを押してラベルに反映させ、ラベルをドラッグ&ドロップさせることですが、ここまでは現在出来ております。実現したいことは、初めにドラッグ&ドロップをしたラベルをそのまま残しつつ、また新しくテキストを入力し反映させたラベルをドラッグ&ドロップ出来るようにすることです。ドラッグ&ドロップは画面内のどこへでもできるような設定を想定しています。
まとめ
①:テキスト入力したものをボタンを押して、ラベルに反映させ、そのラベルを画面内に自由にドラッグ&ドロップ出来るようにする←これは出来ている。
②:①のラベルをドラッグ&ドロップした位置に残しつつ、新たにテキストを入力しボタンを押してラベルに反映させ、画面内で自由にドラッグ&ドロップできるようにする。
③:全てのラベルが残るように、②の処理を永続的に繰り返せるようにする
②と③が出来る具体的なコードをご教示いただければ幸いです。
発生している問題・エラーメッセージ
最初に反映させたラベルを残しつつ、新規にラベルを作るプログラムが分からない点。
### 該当のソースコード import UIKit class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var hockeyrink: UIImageView! @IBOutlet weak var TextFileld: UITextField! @IBOutlet weak var label: UILabel! @IBAction func ACTButton() { label.text = TextFileld.text label.isUserInteractionEnabled = true view.addSubview(label) } override func viewDidLoad() { super.viewDidLoad() self.TextFileld.delegate = self // Do any additional setup after loading the view. self.TextFileld.keyboardType = UIKeyboardType.numbersAndPunctuation } func textFieldDidBeginEditing(_ textField: UITextField) { } func textFieldShouldReturn(_ textField: UITextField) -> Bool { TextFileld.resignFirstResponder() return true } var gapX:CGFloat = 0.0 var gapY:CGFloat = 0.0 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { if let touch = touches.first { if let touchedview = touch.view { if touchedview.tag == 1 { gapX = touch.location(in: view).x - touchedview.center.x gapY = touch.location(in: view).y - touchedview.center.y touchedview.center = CGPoint(x: touch.location(in: view).x - gapX, y: touch.location(in: view).y - gapY) } } } } override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) { if let touch = touches.first { if let touchedview = touch.view { if touchedview.tag == 1 { touchedview.center = CGPoint(x: touch.location(in: view).x - gapX, y: touch.location(in: view).y - gapY) } } } } override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { gapX = 0.0 gapY = 0.0 } override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) { self.touchesEnded(touches, with: event) } } ```ここに言語名を入力 swift5を使用しています。 ### 試したこと ラベルを複数作成して、タグを指定しようと思いましたがその具体的なコードが分かりませんでした。そもそもラベルを複数設定する考え方で合っているのでしょうか。 ### 補足情報(FW/ツールのバージョンなど) Xcodeはバージョン10.2.1でございます。 不明な点は遠慮なくご質問ください。 何卒、御回答よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/04 04:14