2014-09-05 4 views
0

У меня есть UIScrollView в моей раскадровке, которая прокручивается вертикально. Внутри этого scrollView я программно создал горизонтальный UIScrollView.Проблема с UIScrollView в UIScrollView

Вертикальный scrollView называется скроллером. Горизонтальное UIScrollView называется scrollInfo. По какой-то причине я не могу зарегистрироваться, когда используется горизонтальный scrollInfo. Любые идеи о том, почему это не работает?

Это в моем viewDidLoad:

scrollInfo = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 
155,self.view.frame.size.width, self.view.frame.size.height/4)]; 
//This will create a scrollview of device screen frame 

scrollInfo.scrollEnabled = YES; 

NSInteger numberOfViews = 3; 
for (int i = 0; i < numberOfViews; i++) { 
    CGFloat xOrigin = i * self.view.frame.size.width; 
    UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(xOrigin, 0, 
    self.view.frame.size.width, self.view.frame.size.height/4)]; 
    awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 
    alpha:1]; 
    [scrollInfo addSubview:awesomeView]; 
} 

// 3 views added horizontally to the UIScrollView by using xOrigin. 

scrollInfo.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, 
self.view.frame.size.height/4); 

[scroller addSubview:scrollInfo]; 
//Add scrollview to viewcontroller 

scrollInfo.pagingEnabled = YES; 

pageControl = [[UIPageControl alloc] init]; //SET a property of UIPageControl 
pageControl.frame = CGRectMake(0,200,self.view.frame.size.width, 
self.view.frame.size.height/8); 
pageControl.numberOfPages = 3; //as we added 3 diff views 
pageControl.currentPage = 0; 
[scroller addSubview:pageControl]; 

Вот мой scrollViewDidScroll метод:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 

    if ([mainTableView isEqual: scrollView]) { 

     if (mainTableView.contentOffset.y > 0) { 
      // yourTableView is not on top. 
      NSLog(@"not top"); 
     } 

     else { 
      // yourTableView is already on top. 
      NSLog(@"is top"); 
      [UIView animateWithDuration:0.5f delay:0 
      options:UIViewAnimationOptionCurveLinear animations:^{ 
       scroller.contentOffset = CGPointMake(0, 0); 
      } completion:NULL]; 
     } 
    } 

    else { 

     CGFloat pageWidth = self.view.frame.size.width; 
     int page = floor((scrollInfo.contentOffset.x - pageWidth/2)/pageWidth) + 
     1; //this provide you the page number 
     pageControl.currentPage = page;// this displays the white dot as current page 
     NSLog(@"page"); 
    } 
} 

ответ

0

Похоже, вы забыли подключить UIScrollViewDelegate к вашим scrollviews. После этого вам лучше работать с scrollview.tag, чтобы узнать, какой делегат вызова scrollview

Смежные вопросы