2012-05-06 15 views

Respuesta

8

El enfoque común es un UIScrollVer el tamaño de una de las imágenes, con la paginación habilitada.

añadir las imágenes como subvistas y establecer el tamaño de contenido como este ...

NSArray *images; 
CGSize imageSize; 

self.scrollView.frame = CGRectMake(10,10,imageSize.width,imageSize.height); 
self.scrollView.contentSize = CGSizeMake(imageSize.width * images.count, imageSize.height); 
self.scrollView.pagingEnabled = YES; 

CGFloat xPos = 0.0; 

for (UIImage *image in images) { 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    imageView.frame = CGRectMake(xPos, 0.0, imageSize.width, imageSize.width); 
    [self.scrollView addSubview:imageView]; 
    xPos += imageSize.width; 
    // assuming ARC, otherwise release imageView 
} 

También puede desactivar el rebote, el desplazamiento indicadores, etc., dependiendo de los detalles del efecto que desea.

+0

me lo probé, no estoy seguro si estoy siguiendo su sugerencia correctamente, no funciona, la vista de desplazamiento se mantiene en blanco. Tal vez me falta algo porque no entiendo cómo funcionan los objetos, los eventos ... gracias – Sweet

+0

esta respuesta me llevó al enlace que resolvió mi problema: http://www.iosdevnotes.com/2011/03/uiscrollview- paginación /. gracias Danh, lo voté y marqué como respondido – Sweet

1

Usted puede conseguir simplemente sentido de paso a la izquierda oa la derecha con UISwipeGestureRecognizer como esto

swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(detectSwipe:)]; 
[swipeGesture setNumberOfTouchesRequired:1]; 
[swipeGesture setDirection:UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionUp]; 
[appView addGestureRecognizer:swipeGesture]; 

El Método detectSwipe declarar para manejar su avance y retroceso para jugar con matriz UIImage. También puede consultar Apple's SimpleGestureRecognizers Demo

Espero que lo ayude!

2

Mediante el uso de UIScrollView y UIPageControl, arrastrar y soltar UIScrollView y UIPageControl asegurarse de que no se solapa, crear IBOutlet de both.Set

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // 1 
imageArray = [NSArray arrayWithObjects: 
        [UIImage imageNamed:@"image2.jpg"], 
        [UIImage imageNamed:@"man-actor-Ashton-Kutcher-Wallpaper.jpg"], 
        [UIImage imageNamed:@"image1.jpg"], 
        [UIImage imageNamed:@"man-curl.jpg"], 
        [UIImage imageNamed:@"man-in-suit.jpg"], 
        nil]; 


    for (int i = 0; i < imageArray.count; i++) { 
    CGRect frame; 
    frame.origin.x = self.scrollView.frame.size.width * i; 
    frame.origin.y = 0; 
    frame.size = self.scrollView.frame.size; 

    UIImageView *subview = [[UIImageView alloc] initWithFrame:frame]; 
    subview.image = [imageArray objectAtIndex:i]; 
    subview.contentMode = UIViewContentModeScaleAspectFit; 
    [self.scrollView addSubview:subview]; 
    } 

    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * imageArray.count, self.scrollView.frame.size.height); 
    pageControl.numberOfPages = imageArray.count; 
} 

- (void)scrollViewDidScroll:(UIScrollView *)sender { 
    // Update the page 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; 
} 
Cuestiones relacionadas