1

我正在尝试将两个UIScrollView's 添加到一个UIView中,两个scrollView's 都正确显示,我遇到的问题是如何确定哪个scrollView被滚动,因为基于此我必须填充图像。这就是我正在做的事情:

我有一个ViewController.UIScrollViewDelegate

loadViewmy 的方法中ViewConroller,我执行以下操作:

CGRect scrollViewFrame1;
CGPoint scrollViewPoint1;
scrollViewPoint1.x = 0;
scrollViewPoint1.y = 57;

CGSize scrollViewSize1;
scrollViewSize1.width = 320;
scrollViewSize1.height = 154;

scrollViewFrame1.size = scrollViewSize1;
scrollViewFrame1.origin = scrollViewPoint1;

CGRect scrollViewFrame2;
CGPoint scrollViewPoint2;
scrollViewPoint2.x = 0;
scrollViewPoint2.y = 258;

CGSize scrollViewSize2;
scrollViewSize2.width = 320;
scrollViewSize2.height = 154;

scrollViewFrame2.size = scrollViewSize2;
scrollViewFrame2.origin = scrollViewPoint2;

scrollView1 = [[UIScrollView alloc] initWithFrame:scrollViewFrame1];
scrollView2 = [[UIScrollView alloc] initWithFrame:scrollViewFrame2];

进而:

  scrollView1.delegate = self;
  scrollView2.delegate = self;

进而:

 [self.view addSubView:scrollView1];
 [self.view addSubView:scrollView2];

我有一种scrollViewDidScroll:方法,如何确定scrollView调用了哪个方法,因为基于此我需要为我的scrollView.

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
        //Code to populate the next or previous images for scrollView
            // If it was one i am able to show the images
}

谢谢您的帮助。

4

2 回答 2

8

委托方法与它一起发送发送消息的对象(在本例中为 UIScrollView)。因此,您所要做的就是对照您的scrollView1 和scrollView2 的实例变量进行检查。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView == scrollView1) {
        //do stuff with scrollView1
    } else if (scrollView == scrollView2) {
        //do stuff with scrollView2
    }
}
于 2011-03-17T15:55:39.250 回答
1

供参考

您还可以为两个滚动视图设置标签以区分

scrollView1.tag=10;
scrollView2.tag=11;
[self.view addSubView:scrollView1];
[self.view addSubView:scrollView2];

在你的委托

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView1.tag==10) {
        //do stuff with scrollView1
    } else if (scrollView2.tag==11) {
        //do stuff with scrollView2
    }
}
于 2011-03-17T16:13:27.077 回答