Frage

Ich habe gesucht und nach einem Tutorial für diesen gesucht, aber keiner von ihnen ist das, was ich suche. Ich habe versucht, Apples Probe, aber es ist nur Farben, und ich weiß nicht, wie es sieht zu machen. Alle ich suche ist ein Bildschirm, dass Wille Seite, während die Seitensteuerung zeigt. Jedes Mal, wenn die Bildlaufansicht Seiten ich es eine ganz andere Ansicht mit den Tasten, viel wie der Startbildschirm des iPhone angezeigt werden soll. Ich fand den Beispielcode, unter der sehr gut mit nur Bildern funktioniert, aber ich mag die Arbeit mit separaten Ansichten ändern. Bitte um Hilfe! Danke.

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

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

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

    NSUInteger nimages = 0;
    CGFloat cx = 0;
    for (; ; nimages++) {
        NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", (nimages + 1)];                
        UIImage *image = [UIImage imageNamed:imageName];
        if (image == nil) {
            break;
        }
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

        CGRect rect = imageView.frame;
        rect.size.height = image.size.height;
        rect.size.width = image.size.width;
        rect.origin.x = ((scrollView.frame.size.width - image.size.width) / 2) + cx;
        rect.origin.y = ((scrollView.frame.size.height - image.size.height) / 2);

        imageView.frame = rect;

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

        cx += scrollView.frame.size.width;
    }

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

Lösung

Ich war mit diesem nur den anderen Tag zu experimentieren. Ich bin immer noch verwendet immer eine UIScrollView zu verwenden, aber hier ist, wie Sie den Blick auf Ihre UIScrollView hinzufügen:

UIView *blueView = [[UIView alloc] init];
blueView.frame = CGRectMake(100, 0, 500, 1024);
blueView.backgroundColor = [UIColor colorWithRed:164.0/256 green:176.0/256 blue:224.0/256 alpha:1];
[scrollView addSubview:blueView];
[blueView release];

UIView *orangeView = [[UIView alloc] init];
orangeView.frame = CGRectMake(700, 0, 500, 1024);
orangeView.backgroundColor = [UIColor colorWithRed:252.0/256 green:196.0/256 blue:131.1/256 alpha:1];
[scrollView addSubview:orangeView];
[orangeView release];

Beachten Sie, dass ich den x Wert in frame.origin jede Ansicht habe die Einrichtung, so dass sie benachbart zueinander sitzen. Sie können auch den Inhalt Größe des UIScrollView mit so etwas wie [scrollView setContentSize:CGSizeMake(1200, 1024)]; gesetzt haben, so dass er weiß, wie groß seine Subviews sind.

Wenn Sie dann ein UIPageControl steuern müssen, würden Sie seinen numberOfPages bis 2 (für das Beispiel Scroll oben) und seine currentPage Eigenschaft ändern. Sie können dies tun, indem scrollViewDidEndDecelerating: Implementierung, die ein Verfahren, in dem UIScrollViewDelegate ist. Sie könnten prüfen, welche „Seite“ die Scrollview an ist durch seinen contentOffset.x Wert zu überprüfen.

Hope, das hilft!

Andere Tipps

Hier ist der Apple-Pagecontrol Code mit Bildern. Gebrauch, ziehen Sie einfach Ihre Bilder auf das Projekt. Die Standardbilder sind image1.jpg, image2.jpg, etc. Wenn Sie png braucht, nur um die Erweiterung zu ändern, um .png.

ersetzen Sie dann den Code MyViewController.m mit diesem Code, und Sie haben Pagecontrol mit Bildern.

Cheers, Jordan

http://pastebin.com/raw.php?i=c3hS29sC

// Hinzufügen von UIView zu Pagecontrol Beispiel

  - (id)initWithPageNumber:(int)page {
        UIScreen *screen = [UIScreen mainScreen];
        CGRect frame = [screen applicationFrame];
        frame.origin.y=0;

        if (self = [super initWithNibName:@"MyView" bundle:nil]) {      
                UIView *view = [[UIView alloc] initWithFrame:frame];

                [self.view addSubview:view];

                            // Add whatever you want to the view here.
                [view release];
            pageNumber = page;
        }
        return self;
    }

Hier ist eine andere Antwort ...

NSArray* nibViews =  [[NSBundle mainBundle] loadNibNamed:@"Views" owner:self options:nil];
infoView = [nibViews objectAtIndex:0];
[self.view addSubview:infoView];

Dann haben Sie die Ansicht.

Prost

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top