Вот пример Swift ...
Класс UIControl является суперклассом различных виджетов iOS, включая UIButton, поскольку UIControl предоставляет механизм назначения / действия, который отправляет уведомления о событиях. Поэтому общий способ справиться с этим заключается в следующем:
func actionHandler(control: UIControl)
var indexPath = tableView.indexPathForCell(control.superview!.superview! as UITableViewCell)!
var row = indexPath.row
}
Вот пример настройки кнопки управления для выполнения действия. Либо создайте @IBAction и визуально создайте действие с помощью Interface Builder.
button.addTarget(self, action: "actionHandler:", forControlEvents: .TouchUpInside)
При необходимости вы можете уменьшить значение параметра UIControl до UIButton, UIStepper и т. Д. Например:
var button = control as UIButton
Суперпредставлением элемента управления является contentView UITableViewCell, подвидом которого являются UIViews, отображаемые в ячейке (UIControl является подклассом UIView). Суперпредставлением ячейки контента является сам UITableViewCell. Вот почему это надежный механизм, и супервизоры можно безнаказанно пересекать.