限制UIScrollView平移?

时间:2013-02-27 12:47:14

标签: ios uiscrollview

UIScrollView具有内置行为“directionLockEnabled”。

启用后,平移将尝试锁定水平或垂直方向。但是当用户积极尝试对角滚动时 - 它仍然允许对角线滚动。

我想删除对角滚动的功能。

非常感谢提前。

编辑:

我已经尝试将UIScrollView放在另一个中(每个都有尺寸以限制移动)但是pan识别器似乎发生了冲突 - 只有一个工作。

我已经查看了TTScrollView以查看它是否可以针对该作业进行修改 - 但它似乎没有正常工作(在第一个手势后冻结。)

我尝试在UIScrollView.panGestureRecognizer中添加第二个动作(侦听器)以调用具有约束值的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];
}

1 个答案:

答案 0 :(得分:0)

我从未尝试过,但我有一个具有水平ScrollView的应用程序,里面有多个视图,每个视图都有自己的垂直ScrollView。

它有点像杂志,有不同的文章,每篇文章都有很多页面。

两个ScrollView都有效,用户无法对角滚动。你可以试试。

显示层次结构为Horizo​​ntal ScrollView->查看 - >垂直ScrollView