2016-04-14 15 views
-1

Tablo görünümünde düğmeyi nasıl kullanacağımı bulamıyorum. Tamam, 100 Coins, 50 Coins gibi bir değere sahip olan ve sağ tarafta buton bulunan bir masa tablom var. O zaman soru şu düğmeye bastığınızda, o butonun belirli bir değere dokunduğunuzu nasıl anladığını biliyorsunuz? Bazı posta ve yer kodları.Tablo görünümündeki prototip hücresindeki işleme düğmesi hızlı 2

düğmesi tıklandığı düğmeye hangi hücrede bulacaksınız yukarıdaki yöntemin indexPath itibaren

func btnClickAction(sender: UIButton) 
{ 
    var superView = sender.superview 

    while superView?.isKindOfClass(UITableViewCell) == false 
    { 
     superView = superView?.superview 
    } 

    var cell = superView as! UITableViewCell 
    var indexPath = self.tableView.indexPathForCell(cell)! as NSIndexPath 
} 

yani sizin denetleyici bir yöntem oluşturun ürünlerini

cevap

1

satın almak için mesaj gerçekleştirmek gerektiğini. Gelen

senin cellForRowAtIndexPath sen bunun biraz geç, biliyorum

btn.addTarget(self, action: "btnClickAction", forControlEvents: UIControlEvents.TouchDragInside) 
+0

Gönderi için teşekkür ederiz. Neden insanlar soru için -2 oyun bilmiyorum –

0

yani yukarıdaki yöntemlere Düğmenizin hedefini eklemek gerekir ama gerçekten bu çözümün gibi pek umut Birini yardımcı olur! BuJatin Chauhan'ın cevabı ama güncellendi. Burada IBAction sizin xib veya Storyboard'dan bir düğmeye bağlanabilir bu kullanma Swift 3

@IBAction func actionFromButtonPress(_ sender: Any) { 

    var superView = (sender as AnyObject).superview 

    while type(of: (superView!)!) != UITableViewCell.self 
    { 
     superView = (superView as AnyObject).superview 
    } 

    let cell = superView as! UITableViewCell 
    let indexPath = self.tableView.indexPath(for: cell)! as NSIndexPath 
    let correspondingDataInDataSource = self.tableViewDataSource[indexPath.row] 

     self.tableView.reloadData() 
} 

.

NOT: Bir özel varsa benim yaptığım gibi UITableViewCell siz "UITableViewCell.self" ama yerine için "YourCustomTableViewCellClass.self" olarak türünü karşılaştırmak gerekir. Not 2: while döngüsü için iki kez açılmam gerektiğine dikkat edin. Bastırdığımda isteğe bağlı isteğe bağlı bir seçenektir ve bu şekilde sökülerek, birbirleriyle karşılaştırılabilir.

İlgili konular