我有一個單元格內的圖像列表,在UITableView
。由於我不會(太多)進入的原因,我不能使用didSelectRowAtIndexPath
來知道哪一個被選中,因爲我正在使用添加自己的父手勢的第三方模塊,而且我不能設置cancelsTouchesInView = false
(這可以在技術上解決我的問題)。Swift:從UITapGestureRecognizer獲取任意信息
在這兩種情況下,是否有一種方法可以向視圖中添加任意信息,以便當我以sender
的格式接收它時,我可以對其進行反思。
例如:如果這是HTML & JavaScript,你可以這樣做。
$(myImage).data('foo', 'bar')
$(anotherImage.data('foo', 'thunk')
$('img').on('click', function() {
console.log($(this).data('foo')) // could be "foo" or "thunk"
})
在斯威夫特
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = MyCustomTableViewCell()
cell.userInteractionEnabled = true
let tapped = UITapGestureRecognizer(target: self, action: Selector("myCallback:"))
cell.addGestureRecognizer(tapped)
// my imaginary world...
cell.foo = self.extraData[indexPath.row]
return cell
}
func myCallback(sender: AnyObject?) {
println(sender.foo)
}
顯然,上述不工作,但有沒有辦法實現我想要做什麼?
非常好!這就像一個魅力。另外,任何不設置單元格上識別的手勢的理由?它在我的例子中運行良好(意思是,我得到了回調)。 – ded
即使您在單元格上設置了識別器,我認爲它仍然可以工作。但是,根據[Apple文檔](https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UITableViewCell_Class/index),始終處理'contentView'而不是單元格本身是一個好習慣.html#// apple_ref/occ/instp/UITableViewCell/contentView) – ozgur
對不起。不知道我能做到這一點呢。我相當確定<= 200的用戶,他們幾天內不能接受答案 – ded