UITableViewCell с помощью кнопки UIB
У меня есть UITable, который содержит некоторые кнопки UIB. Я хотел бы использовать метку.
У меня проблема в том, что мне нужны две метки тега, одна для получения ячейки в tableviewCellWithReuseIdentifier и configureCell.
До недавнего времени я использовал UIButton.title, чтобы определить, какую строку в таблице я выбрал. Текст (невидимый) был номером строки.
Теперь мне нужно использовать заголовок для некоторого видимого текста. Как я могу все еще найти, какая строка была нажата?
Когда я нажимаю область за пределами кнопки, вызывается обычный didSelectRowAtIndexPath. Сложность в том, что я хочу захватить как UIButton (который вызывает свой собственный селектор), так и строку, которую я узнал из названия. Теперь мне нужно название для чего-то еще.
4 ответа
Я использую что-то вроде этого. Это даст вам указатель в табличном представлении.
- (IBAction)buttonAction:(id)sender {
UIButton *button = (UIButton *)sender;
CGPoint buttonOriginInTableView = [button convertPoint:CGPointZero toView:tableView];
NSIndexPath *indexPath = [tableView indexPathForRowAtPoint:buttonOriginInTableView];
// do something
}
Вы можете создать подкласс UITableViewCell или UIButton и добавить некоторые свойства.
Вы должны реализовать UITableViewDelegate
протокол.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Do something based on selected row (indexPath.row)
}
Реализуйте протокол UITableViewDelegate. Это поможет вам и сделает то, что вам нужно.
didSelectRowAtIndexPath
вызывается автоматически при выборе строки в вашей таблице.
в вашем.m файле тот, с контроллером табличного представления, если его там нет, добавьте этот метод:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// NSInteger row = [indexPath row];
// or (indexPath.row)
// do whatever you like with this value which tells you which row is selected.
}
PK