добавлена ​​кнопка в uitableviewcell не отвечает - PullRequest
1 голос
/ 07 августа 2011

Я создал пользовательскую табличную ячейку через конструктор интерфейса с меткой и кнопкой. В файле .h и .m я сделал выводы и действия для кнопки, которую я подключил. Эта ячейка добавляется в табличное представление, управляемое классом uiviewcontroller. Однако моя проблема заключается в том, что, когда я нажимаю кнопку, кнопка не активируется, однако я нажимаю на подробный вид, принадлежащий ячейке. Кажется, кнопка находится за клеткой.

Любые предложения о том, что я забыл или должен изменить?

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

 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:CGRectMake(200.0f, 5.0f, 100.0f, 40.0f)];


//Set image
UIImage *img = [UIImage imageNamed:@"myPackage.png"];
[button setImage:img forState:UIControlStateNormal];
[img release];


[button addTarget:self action:@selector(myPackagePushed:) forControlEvents:UIControlEventTouchUpInside];

[cell addSubview:button];

Я действительно хотел бы использовать подход с построителем интерфейса - есть предложения?

Привет

Ответы [ 3 ]

3 голосов
/ 07 августа 2011

1001 * попробовать *

[cell.contentView addSubview: кнопка];

также

UIImage * img = [UIImage imageNamed: @ "myPackage.png"]; здесь вы не выделяете память, поэтому нет необходимости

[img release]; потому что есть вероятность сбоя

1 голос
/ 03 июля 2012

В моем случае проблема заключалась в том, что кнопка была подпредставлением фона.

Кнопки, назначенные фоновому окну, очевидно, не могут реагировать на прикосновения.

1 голос
/ 07 августа 2011

Кнопка должна запускать метод IBAction, который вы установили в IB.Вы проверили, вставив NSLog или установив точку останова, если метод введен?

Установлена ​​ли кнопка для первоначальной активации в IB?

Суть конструкции IB в том, чтоIBOutlet получает свое значение, когда ячейка загружается из XIB.Тогда IBOutlet будет кнопкой в ​​ячейке, которую просмотр таблицы должен был загрузить последним.

Когда вы добавляете кнопку программно, вам может понадобиться предыдущая добавленная кнопка для удаления FromSuperview, прежде чем вы снова добавите кнопку в эту кнопку.клетка.

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