2012-10-25 10 views
8

Sto provando a fare un'app pratica in cui è possibile scorrere le immagini con il controllo della pagina. Sono in grado di scorrere le immagini e in grado di includere il controllo della pagina. Ma il problema che devo affrontare è che non sono in grado di interconnettere i due. Il significato di dire quando faccio scorrere le immagini, il controllo della pagina non è influenzato e quando cambio il controllo della pagina, lo scorrimento delle immagini non è influenzato.Scorrimento delle immagini con Controllo pagina in Iphone

Mi sono riferito a questo: http://www.iosdevnotes.com/2011/03/uiscrollview-paging/ per lo scorrimento con controllo della pagina.

Viewcontroller.h

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController <UIScrollViewDelegate>{ 
    UIScrollView *scrollView; 
    UIPageControl *pageControl; 

    BOOL pageControlBeingUsed; 
} 

@property (nonatomic, retain) IBOutlet UIScrollView *scrollView; 
@property (nonatomic, retain) IBOutlet UIPageControl *pageControl; 

- (IBAction)changePage; 

@end 

Viewcontroller.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

@synthesize scrollView,pageControl; 

- (void)scrollViewDidScroll:(UIScrollView *)sender { 
    if (!pageControlBeingUsed) { 
     // Switch the indicator when more than 50% of the previous/next page is visible 
     CGFloat pageWidth = self.scrollView.frame.size.width; 
     int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
     self.pageControl.currentPage = page; 
    } 
} 
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 
    pageControlBeingUsed = NO; 
} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 
    pageControlBeingUsed = NO; 
} 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSArray *images = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"1.jpeg"],[UIImage imageNamed:@"2.jpeg"],[UIImage imageNamed:@"3.jpeg" ], nil]; 

    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * images.count, self.scrollView.frame.size.height); 

    for (int i = 0; i < images.count; i++) { 
     CGRect frame; 
     frame.origin.x = self.scrollView.frame.size.width * i; 
     frame.origin.y = 0; 
     frame.size = self.scrollView.frame.size; 
     UIImageView* imgView = [[UIImageView alloc] init]; 
     imgView.image = [images objectAtIndex:i]; 
     imgView.frame = frame; 
     [scrollView addSubview:imgView]; 
    } 

    self.pageControl.currentPage = 0; 
    self.pageControl.numberOfPages = images.count; 

} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 
- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
    self.scrollView = nil; 
    self.pageControl = nil; 
} 

- (IBAction)changePage{ 
     // update the scroll view to the appropriate page 
     CGRect frame; 
     frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage; 
     frame.origin.y = 0; 
     frame.size = self.scrollView.frame.size; 
     [self.scrollView scrollRectToVisible:frame animated:YES]; 
     pageControlBeingUsed = YES; 
} 

@end 

bisogno di alcune indicazioni su questo ... Grazie ..

risposta

3

Controllare se è stato impostato il delegato della vista di scorrimento al ViewController

E si è appena impostato il pageControlBeingUsed su YES o no e non lo hanno utilizzato in qualsiasi parte del ViewController

+0

dove usarlo? posso darmi un'idea di dove usarlo? – lakesh

+0

ha cambiato il codice ora ... incluso il pageControlBeingUsed nella funzione scrollViewDidScroll .. ancora nessuna differenza ... – lakesh

+0

scuse ... imposta il mio delegato in modo errato .. grazie per l'aiuto ... – lakesh

Problemi correlati