0

我有两个 UIScrollView,aScroll 和 bScroll。而bScroll 是aScroll 的子视图。我面临的问题是,我想拖动 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];
}
4

1 回答 1

0

我的猜测是你需要检测触摸,scrollViewWillBeginDragging:如果 bScroll 是移动的,你可以设置 aScroll 的属性:

if([scrollView isEqual: bScroll])
aScroll.scrollEnabled = NO;

要稍后恢复运动,您可以使用scrollViewDidEndDecelerating:

aScroll.scrollEnabled = YES;

请记住,这些是委托方法,您至少需要将 bScroll 的委托设置为您的ViewController. 希望这可以帮助。

于 2012-07-25T16:48:46.457 回答