Два UIScrollView в одном UIView - PullRequest
       3

Два UIScrollView в одном UIView

1 голос
/ 17 марта 2011

Я пытаюсь добавить два UIScrollView в один UIView, оба scrollView отображаются правильно, проблема, которую я имею, состоит в том, как определить, какая scrollView прокручивается, потому что на основечто я должен заполнить изображения.Вот что я делаю:

У меня есть ViewController с UIScrollViewDelegate.

В методе loadView моего 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
}

Спасибо за помощь.

Ответы [ 2 ]

9 голосов
/ 17 марта 2011

Методы делегирования отправляют вместе с ним объект, который отправил сообщение (в данном случае UIScrollView). Итак, все, что вам нужно сделать, это проверить это по отношению к переменным вашего экземпляра scrollView1 и scrollView2.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView == scrollView1) {
        //do stuff with scrollView1
    } else if (scrollView == scrollView2) {
        //do stuff with scrollView2
    }
}
0 голосов
/ 17 марта 2011

FYI

Вы также можете установить тег для обоих scrollView, чтобы различать

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
    }
}
...