проблемы с пользовательскими элементами UITableViewCell
-
16-09-2019 - |
Вопрос
Я новичок.
У меня есть собственный UITableViewCell с тремя элементами:
uilabel uitextfield и uibutton
Мой вопрос: как узнать, из какой ячейки была нажата кнопка или отредактировано текстовое поле?
Есть ли способ их отслеживать?
Спасибо за любые ответы.
Решение
Обычно после настройки пользовательской ячейки я сохраняю NSIndexPath ячейки в заголовке кнопки для состояния UIControlStateApplication.
В вашем tableView:ячейкаForRowAtIndexPath:метод при настройке ячейки:
[theButton setTitle:(NSString *)indexPath forState:UIControlStateApplication];
Затем в действии кнопки:
- (IBAction) buttonWasClicked:(UIButton *) senderButton {
NSIndexPath *indexPath;
indexPath = (NSIndexPath *)[senderButton titleForState:UIControlStateApplication];
NSLog(@"Sender button was clicked in cell at NSIndexPath section: %d row: %d ", [indexPath section], [indexPath row]);
}
Я не очень доволен этим способом.Если у кого-то есть более чистый способ сделать это, я хотел бы услышать об этом.
Другие советы
Если у вас есть только один раздел, вы можете сохранить indexPath.row
в button.tag
и получить его в действии, вызываемом этой кнопкой.