UIScrollView 有一个内置的行为“directionLockEnabled”。
启用后,平移将尝试锁定到水平或垂直方向。但是当用户积极尝试对角滚动时 - 它仍然允许对角滚动。
我想删除对角滚动的能力。
提前谢谢了。
编辑:
我尝试将 UIScrollView 放在另一个内部(每个都有尺寸以限制运动),但平移识别器似乎发生冲突 - 只有一个有效。
我查看了 TTScrollView 以查看它是否可以针对这项工作进行修改 - 但它似乎开箱即用并不能正常工作(在第一个手势后冻结。)
我尝试向 UIScrollView.panGestureRecognizer 添加第二个操作(侦听器)以调用具有约束值的 setTranslation:inView。这导致了不稳定的跳跃。
其他几种途径可能不值得一提。
编辑2:
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];
}