Динамическое изменение кнопки в ячейке представления таблицы

У меня есть таблица, где есть 5 ячеек. В каждой ячейке есть кнопка. Мне нужно динамически менять эти кнопки на некоторых условиях. Как динамически менять кнопку в виде таблицы.

0
@ moonwave99 Мне нужно изменить поведение. Например, если это «вызов», и если я нажму, он должен изменить его как «СМС». Как только звонок будет сделан в следующий раз, я смогу только SMS.
добавлено автор 2vision2, источник
@ moonwave99 Мне нужно изменить поведение. Например, если это «вызов», и если я нажму, он должен изменить его как «СМС». Как только звонок будет сделан в следующий раз, я смогу только SMS.
добавлено автор 2vision2, источник
@tkanzakic использует статические ячейки
добавлено автор 2vision2, источник
@tkanzakic использует статические ячейки
добавлено автор 2vision2, источник
wt означают динамическое изменение ??? i cnt получить его ?? plaease expalin ясно
добавлено автор iPatel, источник
wt означают динамическое изменение ??? i cnt получить его ?? plaease expalin ясно
добавлено автор iPatel, источник
вы используете раскадровки?, вы используете статические ячейки?
добавлено автор tkanzakic, источник
вы используете раскадровки?, вы используете статические ячейки?
добавлено автор tkanzakic, источник
@ 2vision2 вы просто хотите изменить его, когда действие выполнено ?, если вы можете использовать параметр отправителя, чтобы применить изменения, которые вам нужны
добавлено автор tkanzakic, источник
@ 2vision2 вы просто хотите изменить его, когда действие выполнено ?, если вы можете использовать параметр отправителя, чтобы применить изменения, которые вам нужны
добавлено автор tkanzakic, источник
Что вы подразумеваете под изменением? Изменить поведение? Изменить вид? Изменить текст?
добавлено автор moonwave99, источник
Что вы подразумеваете под изменением? Изменить поведение? Изменить вид? Изменить текст?
добавлено автор moonwave99, источник

6 ответы

Что вы можете сделать, это написать функцию, которая изменит значения кнопок, а затем вы можете вызвать эту функцию. После изменения значений кнопок используйте один из указанных ниже способов:

Вы можете использовать либо: [tableview reloadData]; , чтобы перезагрузить все данные таблицы.

ИЛИ

Вы можете перезагрузить определенные строки, используя следующий метод:

[tableview reloadRowsAtIndexPaths: indexPath withRowAnimation: anyKindOfAnimation];

1
добавлено

Что вы можете сделать, это написать функцию, которая изменит значения кнопок, а затем вы можете вызвать эту функцию. После изменения значений кнопок используйте один из указанных ниже способов:

Вы можете использовать либо: [tableview reloadData]; , чтобы перезагрузить все данные таблицы.

ИЛИ

Вы можете перезагрузить определенные строки, используя следующий метод:

[tableview reloadRowsAtIndexPaths: indexPath withRowAnimation: anyKindOfAnimation];

1
добавлено

Вы можете запросить свой вид таблицы для всех видимых ячеек через -visibleCells , получить ссылку на свою кнопку (при условии, что у вас есть подкласс UITableViewCell с свойством для кнопки) и изменить их.

1
добавлено

Вы можете запросить свой вид таблицы для всех видимых ячеек через -visibleCells , получить ссылку на свою кнопку (при условии, что у вас есть подкласс UITableViewCell с свойством для кнопки) и изменить их.

1
добавлено

Сначала вам нужно установить теги для каждой кнопки. Это можно сделать

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//Your code
cell.Button.tag = indexPath.row;
[cell.Button addTarget:self action:@selector(buttonClick1:) forControlEvents:UIControlEventTouchUpInside];

}

Затем вы можете получить кнопку из этого метода

- (IBAction)buttonClick1:(id)sender {

int tagNo =[sender tag];
UITableViewCell *cellclicked = [self.tblProfileFollowing cellForRowAtIndexPath:[NSIndexPath indexPathForRow:tagNo inSection:0]];
//Now change the action for the cell
[cellclicked.Button addTarget:self action:@selector(buttonClick2:) forControlEvents:UIControlEventTouchUpInside];

//Your Code

}

Вы можете выполнить те же шаги для - (IBAction) buttonClick2: (id) отправителя

Теперь вы можете отслеживать, какая кнопка была нажата, и изменить метод для этой кнопки.

И объявите свою ячейку и кнопку strong .

0
добавлено

Сначала вам нужно установить теги для каждой кнопки. Это можно сделать

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//Your code
cell.Button.tag = indexPath.row;
[cell.Button addTarget:self action:@selector(buttonClick1:) forControlEvents:UIControlEventTouchUpInside];

}

Затем вы можете получить кнопку из этого метода

- (IBAction)buttonClick1:(id)sender {

int tagNo =[sender tag];
UITableViewCell *cellclicked = [self.tblProfileFollowing cellForRowAtIndexPath:[NSIndexPath indexPathForRow:tagNo inSection:0]];
//Now change the action for the cell
[cellclicked.Button addTarget:self action:@selector(buttonClick2:) forControlEvents:UIControlEventTouchUpInside];

//Your Code

}

Вы можете выполнить те же шаги для - (IBAction) buttonClick2: (id) отправителя

Теперь вы можете отслеживать, какая кнопка была нажата, и изменить метод для этой кнопки.

И объявите свою ячейку и кнопку strong .

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.

macOS — русскоговорящее сообщество
macOS — русскоговорящее сообщество
693 участник(ов)

Обсуждаем всё, что связано с экосистемой macOS и продуктами Apple.

macOS Developers — русскоговорящее сообщество
macOS Developers — русскоговорящее сообщество
124 участник(ов)

По всем остальным macOS / Apple вопросам в @macOS_ru Обсуждаем всё, что связано с разработкой под macOS.