2013-02-27 109 views
2

UIScrollView具有内置行为“directionLockEnabled”。约束UIScrollView平移?

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

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

非常感谢提前。

编辑:

我试图把里面的另一个一个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]; 
} 
+1

把一些代码来解释 – mangesh 2013-02-27 13:00:58

回答

0

我从来没有尝试过,但我有一个具有水平滚动型的应用程序,它里面有多个视图,他们每个人用自己的垂直滚动型。

这就像一本杂志,有不同的文章,每篇文章都有很多页面。

这两个ScrollViews的工作和用户不能对角线滚动。你可以试试。

的显示层次结构是水平ScrollView->查看 - >垂直滚动型

+0

这似乎是工作 - 我会后一些工作的代码,一旦我得到了所有琐碎的问题。非常感谢。 – qarl 2013-02-27 15:50:26