Я хочу изменить текст ярлыков всех ячеек в виде таблицы в ios, нажав на кнопку, которая не является частью таблицы. Я пробовал поиск документации по Интернету, но пока не нашел решения.выберите все строки в таблицах в программном обеспечении iOS с помощью быстрого нажатия на кнопку?
выберите все строки в таблицах в программном обеспечении iOS с помощью быстрого нажатия на кнопку?
ответ
В действии кнопки вы должны изменить свой источник данных, а затем вызвать tableView.reloadData()
, который перезагрузит таблицу, используя обновленный источник данных.
создать источник данных для всех элементов, содержащихся в Tableview, а затем, после изменения его просто перезагрузить все данные ...
, например, у вас есть 3 пунктов:
let item1 = "A"
let item2 = "B"
let item3 = "C"
let tableViewItems = [item1, item2, item3]
func tableView(cellForRowAtIndexPath..., indexPath ...) {
// bind your custom datasource to tableview
let cell = ...
let item = tableViewItems[indexPath.row]
cell.title = item
}
Тогда вы» ве получили вашу кнопку действия:
func didPressModifyAllButton() {
for item in tableViewItems {
// here you can modify your items
item = "Modified ..."
}
tableView.reloadData()
}
Я использую это. let totalRows = markAttendanceTable.numberOfRows (inSection: 0) для строки в 0 ..
Проблема в том, что, поскольку она повторно использует ячейки, она дает мне исключение –
вариант 1:
Вы должны главный tain array для selectedIndexPath. После нажатия кнопки вы можете добавить весь индексный путь к массиву.
Вариант 2: У вас есть логическая переменная, которая может поддерживаться для отображения выбора в таблицеView.
// Привет, попробуйте как этот
func buttonClik(sender: UIButton) {
sender.selected = !sender.selected
tblView.reloadData()
}
set text of label based on button selection as follows
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if btn.selected {
//give text of label on selection state of button
} else {
//give text of label on normal state of button
}
}
Я использую это. let totalRows = markAttendanceTable.numberOfRows (inSection: 0) для строки в 0 ..
Проблема в том, что, поскольку он повторно использует ячейки, он дает мне исключение –
u может получить эту ячейку в ячейке для строки по пути индекса, и вы можете изменить текст метки на основе выбора кнопки –
вар IsSelected = ложному
@IBAction func yourButtonAction(sender:UIButton)
{
isSelected = True
tableview.reloadData()
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier(“YourCellIdentifier”, forIndexPath: indexPath) as! YourCell
if isSelected
{
// Set your text here
}
else
{
// Set default value
}
}
if you want to change text to previous state when user tap again on button then use.
@IBAction func yourButtonAction(sender:UIButton)
{
sender.selected = !sender.selected
isSelected = sender.selected
tableview.reloadData()
}
пожалуйста, покажите нам свой код, а также кратко описать вашу проблему. –