В представлении touchesBegan:
вы можете вызвать свой дескриптор "длинного нажатия" с некоторой задержкой.
[touchHandler performSelector:@selector(longTap:) withObject:nil afterDelay:1.5];
Затем в представлении touchesEnded:
вы можете отменить этот вызов, если прошло недостаточно времени:
[NSObject cancelPreviousPerformRequestsWithTarget:touchHandler selector:@selector(longTap:) object:nil];