2015-09-17 82 views
2

我已創建一個按鈕,兩個標籤上的tableview細胞,當點擊按鈕,然後更改的tableview標籤文本 這裏是我的代碼斯威夫特的tableview細胞標籤更改文本

func buttonLike_ww(sender: AnyObject?) { 
     var tag:NSInteger = sender!.tag; 

     tag_last_button_clicked = tag; 


     // found table 
     let cell = TableViewCell_trandingjive(style:UITableViewCellStyle.Default, reuseIdentifier:"Cell") 
     cell.label_dislike.text = "20" 
     cell.label_like.text = "50" 

    } 
+1

請問您是否可以用適當的英文來描述您的問題?我想在這裏幫助你,但我無法理解你的問題。 – dehlen

+0

tableview標籤文本更改索引號 我有創建一個按鈕和按鈕設置標籤集index.row並設置單擊事件「buttonLike_ww」然後點擊按鈕更改tableview標籤按鈕標籤@dehlen請幫助我 –

+0

你基本上想改變一旦當前單元格按鈕被點擊,當前索引的標籤? @ user3899589 – Xrait

回答

1
func buttonLike_ww(sender: AnyObject?) { 
     let tag:NSInteger = sender!.tag; 
     let indexPath = NSIndexPath(forRow: tag, inSection: 0) 
     let cell = tableView.cellForRowAtIndexPath(indexPath) 
     cell.label_dislike.text = "20" 
     cell.label_like.text = "50" 

} 

基本上你所做的是從按鈕中獲取標籤(如果我正確的話,這是UITableViewCell的indexPath)。然後在單元格上獲取引用並相應地將標籤更改爲文本。

您在方法中犯了錯誤,您沒有在單元格中找到引用,但創建了新引用。 另外上面的代碼只適用於你只有一個部分。如果您有多個部分,則不僅需要了解該行,還需要了解該部分。

在這種情況下,你可以用這種方法去:

func buttonLike_ww(sender: AnyObject?) { 
var position: CGPoint = sender.convertPoint(CGPointZero, toView: self.tableView) 
    if let indexPath = self.tableView.indexPathForRowAtPoint(position) { 
     let section = indexPath.section 
     let row = indexPath.row 
     let indexPath = NSIndexPath(forRow: row, inSection: section) 
     let cell = tableView.cellForRowAtIndexPath(indexPath) 
     cell.label_dislike.text = "20" 
     cell.label_like.text = "50" 
    } 
} 
+0

謝謝!這是解決我的問題。 – Raja

0

這裏是你如何改變當前單元格的標籤在當前小區按鈕被竊聽。

首先,我們需要通過提供給方法來識別單元。像這樣,確保這是在你的單元格的UIButton方法中。

func ButtonTapped(cell: UITableViewCell){ 
     cell.label_dislike.text = "20" 
     cell.label_like.text = "50" 
} 

此外,如果你有XIB文件自定義單元格,你改變了UITableViewCellCustomTableViewCell

如果你想從你的數據數組中獲取當前索引,你可以在你的方法中設置兩個變量。

//Get Current Index of you Cell and Match it with your Data Array if 
let indexPath = self.tableView.indexPathForRowAtPoint(cell.center) 
let selectedCell = dataForCell[(indexPath?.row)!] // Change it to you data array ===> dataForCell[(indexPath?.row)!] 
相關問題