Je construis une application basée sur l'exemple de code "défilant" fourni par Apple. Tout fonctionne très bien. La nature des images que je veux afficher rendrait souhaitable, si l'ordre des images est inversé, et que la première image visible soit la plus à droite plutôt que la plus à gauche. Fondamentalement, l'utilisateur devrait revenir en arrière, de droite à gauche, plutôt que de gauche à droite. Mais maintenant: je ne comprends pas la syntaxe qu'utilise Apple, et j'espère que quelqu'un pourra m'expliquer ce qui se passe. Voici les parties pertinentes de l'exemple d'application:iphone UIScrollView positionnement inversé
- (void)viewDidLoad
{
self.view.backgroundColor = [UIColor whiteColor];
// load all the images from our bundle and add them to the scroll view
NSUInteger i;
for (i = 1; i <= kNumImages; i++)
{
NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", i];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
// setup each frame to a default height and width, it will be properly placed when we call "updateScrollList"
CGRect rect = imageView.frame;
rect.size.height = kScrollObjHeight;
rect.size.width = kScrollObjWidth;
imageView.frame = rect;
imageView.tag = i; // tag our images for later use when we place them in serial fashion
[scrollView1 addSubview:imageView];
[imageView release];
}
[self layoutScrollImages]; // now place the photos in serial layout within the scrollview
}
- (void)layoutScrollImages
{
UIImageView *view = nil;
NSArray *subviews = [scrollView1 subviews];
// reposition all image subviews in a horizontal serial fashion
CGFloat curXLoc = 0;
for (view in subviews)
{
if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
{
CGRect frame = view.frame;
frame.origin = CGPointMake(curXLoc, 0);
view.frame = frame;
curXLoc += (kScrollObjWidth);
}
}
// set the content size so it can be scrollable
[scrollView1 setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [scrollView1 bounds].size.height)];
}
Quelle partie de la syntaxe rencontrez-vous des problèmes? – diederikh
Il s'agit essentiellement de choses liées au CG. J'ai essayé juste de changer "pour (i = 1; i <= kNumImages; i ++)" en "pour (i = kNumImages; i => 1; i--)", mais dans le contexte de mon application, cela livré inattendu résultats. Au-delà, cela ne résout pas mon problème sur la façon d'afficher le dernier «frame» le plus à droite. – Sjakelien