2011-07-10 4 views
0

Контроль моей страницы отображается только на первой странице UIScrollView. Как только я перейду к следующей странице, он исчезнет.iPhone Page Control отображается только на первой странице UIScrollView

Не могли бы вы рассказать мне, что я делаю неправильно? Потому что мне любопытно, нужно ли мне добавлять subview элемента управления страницы каждый раз, когда я добавляю subview в свой UIScrollView.

Мои соответствующие фрагменты кода:

-(IBAction)clickPageControl:(id)sender 
{ 
    int page=pageControl.currentPage; 
    CGRect frame=scroller.frame; 
    frame.origin.x = frame.size.width * page; 
    frame.origin.y = 0; 
    [scroller scrollRectToVisible:frame animated:YES]; 
} 

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    int page = scrollView.contentOffset.x/scrollView.frame.size.width; 
    pageControl.currentPage=page; 
} 

- (void) viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:YES]; 
    arrayCount = [array count]; 
    scroller.delegate=self; 
    scroller.pagingEnabled=YES; 
    scroller.directionalLockEnabled=YES; 
    scroller.showsHorizontalScrollIndicator=NO; 
    scroller.showsVerticalScrollIndicator=NO; 

    //should have an array of photo objects and the number of objects, correct? 
    scrollWidth = 0; 
    scroller.contentSize=CGSizeMake(arrayCount*scroller.frame.size.width, scroller.frame.size.height); 

    for (int i = 0; i < arrayCount;i++) { 
     PhotoViewController *pvc = [[PhotoViewController alloc] initWithNibName:@"PhotoViewController" bundle:nil];   
     UIImageView *scrollImageView = [[UIImageView alloc] initWithFrame:CGRectOffset(scroller.bounds, scrollWidth, 0)]; 
     CGRect rect = scrollImageView.frame; 
     pvc.view.frame = rect; 
     [pvc view]; 
     pvc.label.textColor = [UIColor whiteColor]; 
     id individualPhoto = [array objectAtIndex:i]; 
     NSLog(@"%@",individualPhoto); 
     NSArray *keys=[individualPhoto allKeys]; 
     NSLog(@"%@",keys); 
     NSString *imageURL=[individualPhoto objectForKey:@"source"]; 
     //here you can use this imageURL to get image-data and display it in imageView 
     NSURL *url = [NSURL URLWithString:imageURL]; 
     NSData *data = [NSData dataWithContentsOfURL:url]; 
     pvc.imageView.image = [[UIImage alloc] initWithData:data]; 
     pvc.label.text = [NSString stringWithFormat:@"Photo Number: %i", arrayCount]; 
     //check to make sure the proper URL was passed 
     //I have an imageView next to the UIScrollView to test whether that works - it does. 
     [scroller addSubview:pvc.view]; 
     [scrollImageView release]; 
     [pvc release]; 
     scrollWidth += scroller.frame.size.width; 
    } 

    if (arrayCount > 3) { 
     pageControl.numberOfPages=3; 
    } else { 
    pageControl.numberOfPages=arrayCount; 
    } 
    pageControl.currentPage=0; 
    [self.view addSubview:scroller]; 
} 
+0

Является ли управление страницей подзором вашего вида прокрутки? – omz

+0

Да, это должно быть? – NateHill

+0

Нет. Это приводит к тому, что элемент управления страницы перемещается с содержимым. Сделайте его братом scrollview. – omz

ответ

4

Вы не должны добавить контроль страницы как подвид в представлении прокрутки, это приводит к его прокрутки с содержимым. Вместо этого сделайте это братом вида прокрутки.

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

  • Нет связанных вопросов^_^