2014-10-30 11 views
8

Swift kullanarak bir uygulama oluşturuyorum. Bir veritabanından bazı verilerle doldurduğum bir UITableView var. Kullanıcı bir hücreyi tıkladığında, bir eylemi tetiklemek isterim.Bir kullanıcı hızlı bir şekilde bir hücreyi tıkladığında bir eylemi tetikleme

Ben ne yaptım:

var array: [String] = ["example"] 


    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return array.count 
    } 



    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     var cell = UITableViewCell(style :UITableViewCellStyle.Default, reuseIdentifier: "cell") 
     cell.textLabel.text = array[indexPath.row] 
     cell.tag = indexPath.row 
     cell.targetForAction("getAction:", withSender: self) 
     return cell 
    } 

    func getAction(sender:UITableViewCell)->Void { 
     if(sender.tag == 0) { 
      println("it worked") 
     } 
    } 

Bir başka görevinden bir çözüm adapte çalıştım ama kesinlikle yanlış yaptım. şimdiden teşekkürler

cevap

17

UITableViewDelegate uygulayın ve size koleksiyonundan öğeyi almak için indexPath kullanmak ve eylem gerçekleştirebilir didSelectRowAtIndexPath

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 

kullanmak

+1

Teşekkür ederim, bu perferct! – soling

+1

'didSelectRowAtIndexPath' yöntemini almak için' UITableViewDelegate' protokolünü uygulamayı unutmayın. – LynAs

4

Swift 4, ben yöntemi değişti inanıyoruz Bu kadar hafif:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    // your code 
} 
İlgili konular