UIButton на пользовательском UITableViewCell - PullRequest
1 голос
/ 01 марта 2011

У меня есть пользовательский UITableViewCell, который имеет пару кнопок.Когда весь код находился под одним контроллером представления, моя кнопка была объявлена ​​так:

myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[myButton addTarget:self
             action:@selector(myButtonAction:)
   forControlEvents:UIControlEventTouchUpInside];
[myButton setTitle:@"Action" forState:UIControlStateNormal];
myButton.frame = CGRectMake(20, 80, 72, 37);
[self addSubview:myButton];

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

Код действия:

UIButton *button = (UIButton *)sender;
UIView *contentView = [button superview];
UITableViewCell *cell = (UITableViewCell *)[contentView superview];
NSIndexPath *indexPath = [[self tableView] indexPathForCell:cell];

//do something with objectAtIndex:indexPath.row

Я понимаюОбычно для свойства тега устанавливается значение indexPath.row для использования UIButton в табличном представлении.Однако я использую два отдельных массива в источнике данных для заполнения двух разных разделов TableView, поэтому я не думаю, что это сработает.

Ответы [ 2 ]

6 голосов
/ 03 марта 2011

В итоге проблема заключалась в том, что я добавлял подпредставление к объекту ячейки, а не к представлению содержимого объекта ячейки. Я изменил код кнопки на это, и он был решен:

UIButton *button = (UIButton *)sender;
UITableViewCell *cell = (UITableViewCell *)[button superview];
NSIndexPath *indexPath = [[self tableView] indexPathForCell:cell];
0 голосов
/ 01 марта 2011

Не делайте подкласс UITableViewCell (или UITableView), он обычно не нужен и может вызвать проблемы.Ячейки таблицы имеют contentView, что является отличным местом для настройки.

Рекомендуемое чтение:

http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html

, а затем:

http://cocoawithlove.com/2010/12/uitableview-construction-drawing-and.html

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