私はチュートリアルをオンラインで行っており、UIImageView
にタッチ検出機能を追加しようとしています。私はこれがジェスチャー認識プログラムで実行できることを認識していますが、私は別の問題を抱えており、どのように尋ねるのか分かりません。Swift - UIImageViewにタッチを追加
基本的に、imageViewのフレームから初期化されたオーバーレイUIButton
を追加しました。しかし、ナビゲーションバーのためにフレームを64ピクセル下に移動する必要があります。私のimageViewはストーリーボードから追加されますが、UIButton
がプログラムによって追加されています。
手動で64ピクセルを追加しないと、これを行う方法はありますか?これは大したことではありませんが、画像のフレームが印刷されているときは(10, 10, 355, 450)
、UIButton
のフレームは(10, 74, 355, 450)
なので、ちょっと切ってしまいます。
明らかに私は、なぜコントローラがサブプログラムをプログラムで追加するときにナビゲーションバーのサイズを考慮しないのだろうと思っていますか?ストーリーボードからサブビューを追加するときにこれをうまく処理しているようです。
overlay = UIButton(frame: imageView.frame)
overlay.backgroundColor = UIColor.red
overlay.addTarget(self, action: #selector(imageViewTapped), for: .touchUpInside)
view.addSubview(overlay)
With 64px added - fits perfectly
overlay = UIButton(frame: imageView.frame.offsetBy(dx: 0, dy: 64))
overlay.backgroundColor = UIColor.red
overlay.addTarget(self, action: #selector(imageViewTapped), for: .touchUpInside)
view.addSubview(overlay)
UIViewControllerの属性インスペクタのキャプチャを表示できますか? – nynohu
申し訳ありません今は2つ以上のリンクを追加することはできませんが、すべてがデフォルトの設定になっています:推測、ステータスバー:推測、トップバー:推測とボトムバー:推測。 –
あなたはself.view.frameをanswerで与えられたように使用できます。答えを確認してください。 –