UIScrollViewには、「directionLockEnabled」という動作が組み込まれています。
有効にすると、パンは水平方向または垂直方向のいずれかにロックしようとします。しかし、ユーザーが積極的に斜めにスクロールしようとすると、それでも斜めスクロールが可能になります。
斜めにスクロールする機能を削除したいのですが。
よろしくお願いします。
編集:
UIScrollViewを別のUIScrollView内に配置しようとしましたが(それぞれが動きを制限するように寸法が設定されています)、パンレコグナイザーが競合しているように見えました。1つだけが機能しました。
TTScrollViewを調べて、ジョブに合わせて変更できるかどうかを確認しましたが、そのままでは正しく機能していないようです(最初のジェスチャ後にフリーズします)。
UIScrollView.panGestureRecognizerに2番目のアクション(リスナー)を追加して、制約された値でsetTranslation:inViewを呼び出してみました。その結果、ジャンプが不安定になりました。
そして、おそらく言及する価値のない他のいくつかの道。
EDIT2:
Odrakirのソリューションは機能します。コードは次のようになります:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIImage* image = [UIImage imageNamed:@"Sofia"];
UIImageView* imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(0, 0, 1024 * 2, 768 * 2);
UIScrollView* scrollView1 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024*2, 768)];
scrollView1.contentSize = CGSizeMake(1024*2, 768*2);
[scrollView1 addSubview:imageView];
UIScrollView* scrollView2 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
scrollView2.contentSize = CGSizeMake(1024*2, 768);
[scrollView2 addSubview:scrollView1];
[self.view addSubview:scrollView2];
}