2015-05-20 3 views
0

У меня есть два пользовательских UItableViewCell с одинаковыми UIButton, как определить, из какой ячейки UIButton называется?Обнаружение, из которого ячеек, UIButton был нажат в UITableView

P.S. Я не хочу использовать два разных метода.

cellForRowAtIndexPath Method.

if (indexPath.row==1) { 
static NSString *cellIdentifier = @“CustomeCell1“; 

          NewsFeedCell1 *cell = (NewsFeedCell1 *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
cell.btnPrivacy.tag = indexPath.row; 
[cell.btnPrivacy addTarget:self action:@selector(btnPrivacyClicked:) forControlEvents:UIControlEventTouchUpInside]; 

} 
else 
{ 
static NSString *cellIdentifier = @"CustomeCell2”; 

          NewsFeedCell2 *cell = (NewsFeedCell2 *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
cell.btnPrivacy.tag = indexPath.row; 
[cell.btnPrivacy addTarget:self action:@selector(btnPrivacyClicked:) forControlEvents:UIControlEventTouchUpInside]; 

} 

Кнопка нажмите методы.

-(IBAction)btnPrivacyClicked:(UIButton *)sender 
{ 
    NSLog(@"Privacy Clicked at : %ld",(long)sender.tag); 

    // Here Determine From Which Cell UiButton Is Clicked. 
    NewsFeedCell1 *cell = (NewsFeedCell1 *)[self.HomeTable cellForRowAtIndexPath:[NSIndexPath indexPathForRow:sender.tag inSection:0]]; 
+0

См. Мои ответы здесь 1. http://stackoverflow.com/a/22827645/790842 и здесь 2. http://stackoverflow.com/a/30029818/790842. Это, безусловно, поможет. Cheers – iphonic

+0

Если вы имеете в виду, что _type_ ячейки (класс NewsFeedCell1 или NewsFeedCell2), используйте 'isKindOfClass'. – Anna

ответ

0

Набор тегов для cell.btnPrivacy.tag = indexPath.row;

и в действии кнопки вы получите кнопку btnЗапись конфиденциальности i.e sender.tag, который является индексом ячейки.

Попробуйте с этим.

+0

Пожалуйста, внимательно прочитайте вопрос, я уже установил тег для UiButton – Naeem

+0

. Думаю, вы добавили это позже, я не могу видеть в момент моего комментария. –

+0

Да, я отредактировал вопрос, но мой вопрос заключается в том, чтобы определить, из какой ячейки выбрана ячейка UIButton? – Naeem

1
// *** Use Following code to detect `Cell` *** 
CGPoint buttonPosition = [button convertPoint:CGPointZero toView:self.tableView]; 
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition]; 
[self.tableView cellForRowAtIndexPath:indexPath]; 
+0

Бросьте некоторые огни на этот код. Это даст NSIndexPath Of UiButton. – Naeem

+0

@Naeem Первая строка находит положение кнопок в заданном UITableView, следующая строка находит IndexPath для заданной позиции на экране. –

+0

Да Я Посмотрел это решение на http://stackoverflow.com/a/16270198/3859370 – Naeem

Смежные вопросы