4

これに関するチュートリアルを検索して検索しましたが、探しているものはありません。Appleのサンプルを試してみましたが、色だけで、ビューにする方法がわかりません。私が探しているのは、ページ コントロールを表示しながらページングする画面だけです。スクロール ビュー ページを表示するたびに、iPhone のホーム画面のように、ボタンを使用してまったく異なるビューを表示したいと考えています。以下のサンプル コードは画像だけでうまく動作しますが、別のビューで動作するように変更したいと思います。助けてください!ありがとうございました。

- (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)];
}
4

4 に答える 4

4

私はつい先日、これを実験していました。私はまだ a の使用に慣れてUIScrollViewいますが、にビューを追加する方法は次のUIScrollViewとおりです。

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

ビューが互いに隣接するように、各ビューのx値を設定していることに注意してください。また、サブビューの大きさを認識できるように、のようなframe.originコンテンツ サイズを設定する必要があります。UIScrollView[scrollView setContentSize:CGSizeMake(1200, 1024)];

次に、 を制御する必要がある場合はUIPageControl、そのnumberOfPagesを 2 に設定し (上記のスクロールビューの例の場合)、そのcurrentPageプロパティを変更します。scrollViewDidEndDecelerating:のメソッドである を実装することで、これを行うことができますUIScrollViewDelegatecontentOffset.xその値を確認することで、スクロールビューがどの「ページ」にあるかを確認できます。

お役に立てれば!

于 2010-12-12T11:45:41.097 に答える
0

// UIView を PageControl の例に追加する

  - (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;
    }
于 2010-12-10T05:18:15.390 に答える
0

ここに別の答えがあります...

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

次に、あなたの見解があります。

乾杯

于 2010-12-10T23:59:10.043 に答える
0

画像付きの Apple PageControl コードを次に示します。使用するには、画像をプロジェクトにドラッグするだけです。デフォルトの画像は image1.jpg、image2.jpg などです。png が必要な場合は、拡張子を .png に変更してください。

次に、MyViewController.m コードをこのコードに置き換えると、pagecontrol が Images になります。

乾杯、ヨルダン

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

于 2010-12-10T03:13:32.560 に答える