Я начинаю разработку ios, и для начала я подумал, что будет интересно сделать измерительный преобразователь.Получение события из ячейки таблицы
Мне удалось создать с раскадровками табличный вид с segues, пользовательские ячейки с текстовыми полями и ярлыками, соответствующие разным измерениям, но теперь я застрял и не смог найти ответ в учебниках или книге, которую я читал.
В каждой ячейке есть текстовое поле, соответствующее заданной размерности (т. Е. Метры, сантиметры и т. Д.). Как получить событие, в котором текстовое поле в заданной строке закончено, и изменить другие текстовые поля после вычислений? (Ячейки создаются из массива, содержащего размеры имена и значения, необходимые для расчетов)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UILabel *label;
UITextField *field;
static NSString *CellIdentifier = @"DimensionCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
label = (UILabel *)[cell viewWithTag:1];
field = (UITextField *)[cell viewWithTag:2];
field.delegate = self;
NSString *DimensionLabel = [self.dimension objectAtIndex:indexPath.row];
label.text = DimensionLabel;
return cell;
}
Поскольку вам нужно будет изменить все текстовые поля всякий раз, когда кто-либо из них изменится, возможно, было бы проще всего создать ролеты для всех и обратиться к ним непосредственно всякий раз, когда текстовое поле будет редактироваться (или изменилось, если вы предпочитаете его в реальном времени). – lnafziger
@Inafziger вот почему я не хочу использовать розетки. Я хочу, чтобы текстовые поля создавались автоматически, поэтому я могу просто добавить новое измерение в массив, и он будет готов к работе. Также это поможет мне использовать один и тот же вид для разных мер. – mjanisz1
В этом случае проще всего обновить источник данных и вызвать reloadData в представлении таблицы, так как вам все равно необходимо их обновить. Другой вариант - просмотреть все виды таблиц visibleCells и получить ссылки на ярлыки так же, как вы делаете в cellForRowAtIndexPath в исходном коде. – lnafziger