2012-05-29 7 views
0

Bonne journée,copie iOS UIScrollView images à fond

mon problème est le suivant: J'ai un scrollview et j'ajouter plusieurs fenêtres pour eux. Entre eux est un petit espace vide. Quand je défile les images bougent mais une 'copie' reste sur le fond. Si je n'avais pas les espaces vides entre les images, vous ne le verriez pas, mais le remplissage avec une couleur n'est pas la solution parce que la vue principale a une image d'arrière-plan qui devrait être visible à travers les lacunes.

Quelqu'un a-t-il une idée?

code:

lookbookScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, 490.0f, 768.0f, 375.0f)]; 
[lookbookScroll setScrollEnabled:YES]; 
[lookbookScroll setContentSize:CGSizeMake(([books count] * 275) + 20, 375)]; 
[self.view addSubview:lookbookScroll]; 

for (int i = 0; i < [books count]; i++) 
{ 
    UIButton *tmpButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [tmpButton setFrame:CGRectMake((i * 275) + 20, 0, 265, 375)]; 
    [tmpButton setBackgroundColor:[UIColor blackColor]]; 
    [tmpButton setBackgroundImage:[[books objectAtIndex:i] valueForKey:@"Image"] forState:UIControlStateNormal]; 
    [tmpButton setTag:[[books objectAtIndex:i] valueForKey:@"Id"]]; 
    [tmpButton addTarget:self action:@selector(readBook:) forControlEvents:UIControlEventTouchUpInside]; 
    [lookbookScroll addSubview:tmpButton]; 
} 
+2

Quand ce code est-il appelé? Y at-il une chance qu'il soit appelé deux fois et produit deux scrollviews l'un sur l'autre? – adig

+0

Je ne suis pas sûr de votre problème spécifique, mais si '[nombre de livres]' est quelque chose de grand, vous obtiendrez de mauvaises performances de défilement. Pensez à utiliser [mosaïque de contenu] (http://developer.apple.com/library/ios/#samplecode/ScrollViewSuite/Introduction/Intro.html) pour de meilleures performances. – Caleb

+0

Le nombre de livres donne une valeur inférieure à 5. Si elle devient plus élevée, nous utiliserons le chargement/déchargement dynamique mais actuellement ce n'est pas nécessaire mais merci pour le conseil. Actuellement, il est fait dans la vue a chargé, et je regarde juste les journaux et il semble en effet comme il est appelé deux fois, je vais vérifier tout de suite. Merci, la mise à jour arrive bientôt – user1195015

Répondre

0

ADIG avait raison, il a été placé dans la vue a fait la charge et il a obtenu appelé deux fois. Placé dans l'init maintenant et cela a résolu le problème. Merci beaucoup pour les réponses rapides.