2015-09-17 1 views
2

I Have Создать одну кнопку, и два этикетки на Tableview Cell, когда нажмите на кнопку Затем измените Tableview текст метки Вот мой кодSwift TableView Текст изменения ярлык Cell по кнопке теге

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

изменение текста метки табличного представления по номеру индекса У меня есть одна кнопка, а кнопка set tag set index.row и set Click Event «buttonLike_ww», а затем нажмите на кнопку change tableview label тегом кнопки @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" 

} 

В основном то, что вы делаете, это получить тег от кнопки (которая является indexPath из UITableViewCell, если я правильно понял вас). Затем получите ссылку на ячейку и соответствующим образом измените метки на текст.

Вы сделали ошибку в своем подходе, что у вас нет ссылки на ячейку, но вы создали новую. Также приведенный выше код работает только в том случае, если у вас есть только один раздел. Если вы получили более одного раздела, вам нужно знать не только строку, но и раздел.

В этом случае вы можете пойти с этим подходом:

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 файла, вы измените UITableViewCell на CustomTableViewCell.

Если вы хотите получить текущий указатель из своего массива данных, вы установите две переменные в своих методах.

//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)!] 
Смежные вопросы