约束 UIScrollView 平移?
Posted
技术标签:
【中文标题】约束 UIScrollView 平移?【英文标题】:Constrain UIScrollView panning? 【发布时间】:2013-02-27 12:47:13 【问题描述】:UIScrollView 具有内置行为“directionLockEnabled”。
启用后,平移将尝试锁定到水平或垂直方向。但是当用户积极尝试对角滚动时 - 它仍然允许对角滚动。
我想取消对角滚动的功能。
非常感谢。
编辑:
我尝试将 UIScrollView 放在另一个内部(每个都有尺寸以限制移动),但平移识别器似乎发生冲突 - 只有一个有效。
我查看了 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】:我从未尝试过,但我有一个具有水平 ScrollView 的应用程序,其中有多个视图,每个视图都有自己的垂直 ScrollView。
有点像杂志,有不同的文章,每篇文章都有很多页。
两个 ScrollView 都可以工作,用户不能对角滚动。你可以试试。
显示层次为Horizontal ScrollView-> View ->Vertical ScrollView
【讨论】:
这似乎正在工作 - 一旦我解决了问题,我将发布一些工作代码。非常感谢。以上是关于约束 UIScrollView 平移?的主要内容,如果未能解决你的问题,请参考以下文章