Предположим, что ваш gestRecognizer запускает действие _panRecogPanned ниже. Вы можете видеть, как центр подпредставления (представление, которое несет сам распознаватель жестов) перемещается после перехода. Чтобы отключить панорамирование по оси y, вы просто устанавливаете центр в качестве вычисленного нового центра, тогда как translation.y опускается.
Чтобы переместить другие подпредставления по оси y, получить их рамку, обновить их свойство origin.x и сбросить рамку, они должны следовать за вашим пальцем только по оси y.
- (IBAction)_panRecogPanned:(id)sender{
CGPoint translation = [_panRecog translationInView:_statementFilterView];
//This subview only moves horizontally
_panRecog.view.center = CGPointMake(translation.x + _panRecog.view.center.x, _panRecog.view.center.y);
//This subview only moves vertically
CGRect newFrame = anotherSubview.frame;
newFrame.origin.y = anotherSubview.frame.origin.y + translation.y;
anotherSubview.frame = newFrame;
[_panRecog setTranslation:CGPointMake(0, 0) inView:self.view];
}