31 votes

UIScrollView horizontal et des centaines d'images miniatures dans iOS?

J'ai besoin de créer une horizontale UIScrollView pour accueillir des centaines de miniatures d'images, comme un diaporama des vignettes.

Par exemple, il y aura 10 vignettes montrant dans un seul écran, chacun d'entre eux horizontalement adjacents les uns aux autres.

Mon problème est que je ne sais pas comment faire une horizontale UIScrollView de tenir les multiples vignettes qui montrant en même temps ?

Une photo de l'échantillon est comme ci-dessous. Voir la partie inférieure de l'écran.

enter image description here

Merci.

37voto

Janak Nirmal Points 15980

Vous pouvez ajouter toutes les vignettes par programme à votre scrollview et utiliser la méthode setContentSize de UIScrollView. vous devez passer 2 valeurs dans contentOffset. 1 pour la largeur et 1 pour la hauteur. Veuillez suivre le lien pour en savoir plus à ce sujet. Si vous avez besoin d'aide, veuillez laisser un commentaire.

J'espère que cela aide.

Veuillez considérer l'exemple suivant.

 - (void)setupHorizontalScrollView
{
scrollView.delegate = self;

[self.scrollView setBackgroundColor:[UIColor blackColor]];
[scrollView setCanCancelContentTouches:NO];

scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.clipsToBounds = NO;
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;

NSUInteger nimages = 0;
NSInteger tot=0;
CGFloat cx = 0;
for (; ; nimages++) {
    NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", (nimages + 1)];
    UIImage *image = [UIImage imageNamed:imageName];
    if (tot==15) {
        break;
    }
    if (4==nimages) {
        nimages=0;
    }

    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

    CGRect rect = imageView.frame;
    rect.size.height = 40;
    rect.size.width = 40;
    rect.origin.x = cx;
    rect.origin.y = 0;

    imageView.frame = rect;

    [scrollView addSubview:imageView];
    [imageView release];

    cx += imageView.frame.size.width+5;
    tot++;
}

self.pageControl.numberOfPages = nimages;
[scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
}
 

4voto

dnstevenson Points 528

Découvrez le projet HSImageSidebarView de bjhomer . Il vous permet de charger une vue de défilement horizontalement ou verticalement et de charger les images. Super facile à mettre en œuvre.

4voto

xonegirlz Points 1781

Je vous suggère de regarder le nimbus

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X