Как изменить значение ячейки после перезагрузки в цель c? - PullRequest
1 голос
/ 07 декабря 2010

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

Так как я могу получить тот же результат? Любая идея?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 07 декабря 2010

Есть несколько способов обновить ячейку в UITableView.

1) Вызвать метод табличного представления reloadRowsAtIndexPaths:withRowAnimation:. Это вызовет вызов метода делегата tableView:cellForRowAtIndexPath:. Если у вас есть источник данных, который вы обновляете, это был бы хороший способ обновить ячейку.

NSIndexPath *indexPathOfUpdatedCell = ...
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPathOfUpdatedCell] withRowAnimation:UITableViewRowAnimationFade];

2) Возможно также обновить ячейку напрямую. Вы можете использовать cellForRowAtIndexPath:.

NSIndexPath *indexPathOfUpdatedCell = ...
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPathOfUpdatedCell];
cell.textLabel.text = @"new value";

Чтобы создать индексный путь для конкретной строки и раздела, можно использовать indexPathForRow:inSection.

NSUInteger row = ...
NSUInteger section = ...
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:section];
1 голос
/ 08 декабря 2010

Для того, что вы пытаетесь сделать, лучше всего сделать контроллер представления <UITextFieldDelegate>, установить для делегата текстового поля своей ячейки значение self, а затем реализовать метод textFieldDidEndEditing: делегат.

ИзменитьВаш интерфейсный файл для принятия протокола

@interface YourViewController : UIViewController <UITextFieldDelegate>

Затем установите контроллер представления в качестве делегата ваших соответствующих UITextField (s) ...

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    ...
    yourCustomCell.yourTextField.delegate = self
}

И, наконец, реализуйте

- (void) textFieldDidEndEditing:(UITextField *)textField.

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

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