拖动两个 UIScrollViews
Posted
技术标签:
【中文标题】拖动两个 UIScrollViews【英文标题】:drag for two UIScrollViews 【发布时间】:2012-07-25 16:25:06 【问题描述】:我有两个 UIScrollView,aScroll 和 bScroll。而bScroll 是aScroll 的subView。我面临的问题是,我想拖动 bScroll 并且不影响 aScroll。 有人可以在这里帮助我吗? 谢谢。
- (void)viewDidLoad
[super viewDidLoad];
UIScrollView *aScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(50, 50, 400, 400)];
aScroll.backgroundColor = [UIColor grayColor];
aScroll.contentSize = CGSizeMake(401, 401);
[self.view addSubview:aScroll];
[aScroll release];
UIScrollView *bScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(75, 75, 150, 150)];
bScroll.backgroundColor = [UIColor lightGrayColor];
bScroll.contentSize = CGSizeMake(500, 500);
[aScroll addSubview:bScroll];
[bScroll release];
UILabel *bLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 30, 30)];
bLabel.text = @"B";
[bScroll addSubview:bLabel];
[bLabel release];
UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 250, 100, 40)];
aLabel.text = @"A";
[aScroll addSubview:aLabel];
[aLabel release];
【问题讨论】:
这是示例代码。当我拖动 bLable 到达边缘时,aLabel 会一起拖动。这不是我想要的,我该怎么办?? 【参考方案1】:我的猜测是您需要使用scrollViewWillBeginDragging:
检测触摸,如果 bScroll 是移动的,您可以设置 aScroll 的属性:
if([scrollView isEqual: bScroll])
aScroll.scrollEnabled = NO;
要稍后恢复运动,您可以使用scrollViewDidEndDecelerating:
aScroll.scrollEnabled = YES;
记住这些是委托方法,您至少需要将 bScroll 的委托设置为您的ViewController
。希望这会有所帮助。
【讨论】:
如果两个UIScrollViews位于不同的UIViewController,那怎么办?以上是关于拖动两个 UIScrollViews的主要内容,如果未能解决你的问题,请参考以下文章
求教: 如何在EXCEL中,拖动下拉,一行数字的其中两个数字实现递增。
在两个 UiViewControllers 和 UIViews 之间实现拖动和滑动转换? [关闭]
**防止在水平滚动视图内拖动两个 CollectionView **