我已经构建了一个嵌套的滚动视图。在view.xib中,在视图中有一个带有垂直滚动的scrollview,名为rootScroll。在这一个中还有另外两个带有水平滚动的滚动视图,名为topScroll和bottomScroll。
我的目标是当用户拖动topScroll时淡出bottomScroll,并在减速结束时再次淡入。
到目前为止,代码工作正常。唯一的问题是scrollViewWillBeginDragging从所有三个UIScrollViews获取消息。我已经记录了发件人并且可以看到它们有所不同,但无论如何我不知道如何将动画仅限制为topScroll发送的消息!
如何区分scrollViewWillBeginDragging中的不同发件人?
可能是一个客观c绝对的初学者问题。我希望有人会给我一个暗示。
谢谢你!- (void)viewDidLoad {
[super viewDidLoad];
// rootScroll
[rootScroll setScrollEnabled:YES];
[rootScroll setContentSize:CGSizeMake(1024, 1980)];
// topScroll
[topScroll setScrollEnabled:YES];
[topScroll setContentSize:CGSizeMake(3072, 406)];
// bottomScroll
[bottomScroll setScrollEnabled:YES];
[bottomScroll setContentSize:CGSizeMake(3072, 188)];
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)sender
{
NSLog(@"will begin dragging, %i", sender);
[UIScrollView beginAnimations:nil context:nil];
[UIScrollView setAnimationDuration:0.15f];
[self.bottomScroll setAlpha:0.0];
[UIScrollView commitAnimations];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender
{
NSLog(@"end position");
[UIScrollView beginAnimations:nil context:nil];
[UIScrollView setAnimationDuration:1.5f];
[self.bottomScroll setAlpha:1.0];
[UIScrollView commitAnimations];
}
答案 0 :(得分:1)
在Interface Builder中设置滚动视图的tag
属性。然后,您可以在方法中使用[sender tag]
来区分它们。