2009-06-06 9 views
1

Ich VERSUCHE, UIScrollview mit Apples Docs und ihre Beispielcode http://developer.apple.com/iphone/library/samplecode/Scrolling/index.html zu lernen, aber etwas so einfach entkommt mir.iPhone UIScrollView - wie man einen Bildtitel bekommt

Wie erkennen Sie, welches Bild gerade auf dem Bildschirm angezeigt wird, so dass ich, wenn ich eines der Bilder in der horizontalen Scroll-Ansicht auswähle, den Dateinamen des Bildes oder sogar einen Zeiger im Array abrufen würde dann mach etwas weiter mit dem Bild.

Ich dachte mit Page Control aktivieren könnte ich in der Lage sein, eine Seite # zu finden und es auf das Bild zuordnen. Ich dachte darüber nach, die Verzögerung zu zählen, um die Seiten zu zählen, aber ein nicht volles Blatt wird es erhöhen und eine falsche Zahl geben.

Das letzte, woran ich denken könnte, ist contentOffSet zu bekommen und nach Bildgröße zu teilen, was eine 1, 2, 3 ergibt und ich könnte auf das Array zeigen (zu müde um es heute Abend zu versuchen ... dachte ich könnte vorher fragen) Ich verschwende viel mehr Zeit ;-)).

Irgendwelche anderen Ideen? Ich dachte, sie wären irgendwo eine Methode, die sie in der Fotoalbum-App verwenden.

Danke für Ihre Hilfe! Vielleicht verstehe ich ihren Code einfach nicht.

Paul

PS: Hier ist der Code:

- (void)layoutScrollImages 

{ UIImageView * view = nil; NSArray * subviews = [scrollView1 Unteransichten];

// 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)]; 

}

  • (void) { viewDidLoad self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];

    // 1. Setup die Scrollview für mehrere Bilder, und fügen Sie den View-Controller // // Anmerkung: die folgenden können im Interface Builder getan werden, aber wir zeigen dies in Code für Klarheit [scrollView1 setBackgroundColor : [UIColor blackColor]]; [scrollView1 setCanCancelContentTouches: NEIN]; scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite; scrollView1.clipsToBounds = YES; // default ist NEIN, wir möchten das Zeichnen innerhalb unserer scrollview einschränken scrollView1.scrollEnabled = YES;

    // pagingEnabled property default ist NEIN, wenn der scroller bei jedem Foto stoppt oder einrastet // Wenn Sie frei fließendes Scrollen möchten, legen Sie diese Eigenschaft nicht fest. scrollView1.pagingEnabled = YES;

    // laden Sie alle Bilder aus unserem Bundle und fügen Sie sie der Bildlaufansicht hinzu // NSUInteger i; für (i = 1; i < = kNumImages; i ++) { NSString * Bildname = [NSString StringWithFormat: @ "Karte% d.PNG“, 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]; // stellt nun die Fotos in Serien Layout innerhalb des Scroll

Antwort

2

das war einfach nach einem guten Schlaf!

CGPoint p = scrollView1.contentOffset; 
NSLog(@"x = %f, y = %f", p.x, p.y); 

Jetzt teilen Sie einfach durch 320 (wenn horizontales und Vollbild) und 1 (weil es bei 0 beginnt).

Hoffe das hilft jemand anderem!

Paul