2015-04-14 2 views
0

Для КСНА 7 и большей части клетки возвращается всегда первая ячейка т.е. indexpath.row = 0. Хотя я учитываю scrollview внутри ячейки с дополнительным .superview.Неправильный tableViewCell возвращается от отправителя UIButton

- (UITableViewCell *)getCellforButton:(UIButton *)sender 
{ 
    UITableViewCell *cell; 

    //Check for iOS version and get the cell accordingly 
    NSArray *versionComponenets = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 

    if ([[versionComponenets objectAtIndex:0] intValue] >= 7) 
    { 
     // iOS-7 code[current] or greater 
     //Additional superview call to account for new scrollview inside of cells 
     cell = (UITableViewCell *)sender.superview.superview.superview; 
    } 
    else 
    { 
     // iOS-6 code 
     cell = (UITableViewCell *)sender.superview.superview; 
    } 

    return cell; 
} 
+1

почему бы не иметь метку для каждой кнопки, например, для кнопки тега = 2 для индекса пути 2, а затем получить ячейку на основе тегов с использованием cellForIndexPath : – Vig

+0

Я использую пользовательскую ячейку, поэтому кнопка также добавляется/удаляется динамически. Так что манипуляция с тегами будет немного сложной в этом случае, я полагаю. – ShaluRaj

+0

Нет, это не сложно с тегом и получить ячейку из таблицы, поскольку вам всегда нужна ячейка при нажатии на UIButton. – Jassi

ответ

2

Использование UIView'sconvertPoint:toViewmethod для получения UITableViewCell

-(UITableViewCell *)getCellforButton:(UIButton *)sender 
{ 
    CGPoint btnPosition = [sender convertPoint:CGPointZero toView:yourTableViewHere]; 
    NSLog(@"btnPositionn : %@",NSStringFromCGPoint(btnPosition)); 
    NSIndexPath *curIndexPath = [yourTableViewHere indexPathForRowAtPoint:btnPosition]; 
    id cell = [yourTableViewHere cellForRowAtIndexPath:curIndexPath]; 
    if (cell) 
    { 
     UITableViewCell *curCell = cell; 
     return curCell; 
    } 
    else 
     return nil 
} 
+0

Можете ли вы подробно остановиться на этой строке. [sender convertPoint: CGPointZero toView: tblLeadForm]; Что такое tblLeadForm – ShaluRaj

+0

convertPoint обеспечивает точную точку UIButton лежит на UITableview. Моя ошибка для tblLeadForm, так как это должно быть yourTableViewHere –

+0

Спасибо. Оно работает. – ShaluRaj

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