テーブルセルのUIImageView
にジェスチャ認識機能を追加するにはどうすればよいですか?ユーザーがセル内の画像をタップすると、画像が変わり、データモデルが更新されるようにします。テーブルセル内の画像ビューにジェスチャ認識機能を追加する
これはUITableViewController
に設定する必要があります。私のコードは現在、セルの任意の場所をタップしている場合にコマンドを実行できますが、画像がタップされている場合にのみ実行されます。
viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
// Load sample data
loadSampleHabits()
// Initialize tap gesture recognizer
var recognizer = UITapGestureRecognizer(target: self, action: #selector(tapEdit(recognizer:)))
// Add gesture recognizer to the view
self.tableView.addGestureRecognizer(recognizer)
ジェスチャ認識、最大Iセットアップそして、これは機能二疑問として
//action method for gesture recognizer
func tapEdit(recognizer: UITapGestureRecognizer) {
if recognizer.state == UIGestureRecognizerState.ended {
let tapLocation = recognizer.location(in: self.tableView)
if let tapIndexPath = self.tableView.indexPathForRow(at: tapLocation) {
if let tappedCell = self.tableView.cellForRow(at: tapIndexPath) as? HabitTableViewCell {
print("Row Selected")
}
}
}
である私が追加したい場合は、任意の競合がありますセルへのジェスチャ認識子とセル内の画像ビュー
あなたの方法からもしrecognizer.state == UIGestureRecognizerState.ended条件を削除してくださいすることができます。私のansをチェックしてください。 – luckyShubhra
@ b.gibson:私はluckyShubhraの答えに適応します。私は自分のプロジェクトのどこかで同じものを使っていましたが、問題は発生しませんでした。 –
イメージビューで 'UITapGestureRecognizer'を使用する場合、' state'をチェックする必要はありません。これは実際には連続したジェスチャー(長押しやパンジェスチャーなど)にのみ関係します。しかし、単に[iOS Dev suggest](https://stackoverflow.com/a/45049086/1271826)のような画像を持つボタンを使用すると、私にとってもっと意味があります。 – Rob