0

pagecontrol と UIScrollView を使用して各ページをカスタマイズする際に問題があります。Apple のPage Controlをカスタマイズしています。

基本的には、各ページを別のページにテキストと画像を交互に配置したいと考えています。ページ 1 にはすべてのテキストが含まれ、ページ 2 には画像のみが含まれ、ページ 3 にはすべてのテキストが含まれ、続きます。

これは元のコードです:

    // Set the label and background color when the view has finished loading.
    - (void)viewDidLoad {
        pageNumberLabel.text = [NSString stringWithFormat:@"Page %d", pageNumber + 1];
        self.view.backgroundColor = [MyViewController pageControlColorWithIndex:pageNumber];
}

ご覧のとおり、右にスクロールすると、このコードはページ 1、ページ 2 などのみを表示します。

この新しいコードを入れようとしましたが、違いはありませんでした。エラーはありません。私はこれがかなり単純なコードであることを知っています。なぜうまくいかないのかわかりません。

pageText を UILabel として宣言します。

// Set the label and background color when the view has finished loading.
- (void)viewDidLoad {
    pageNumberLabel.text = [NSString stringWithFormat:@"Page %d", pageNumber + 1];
    self.view.backgroundColor = [MyViewController pageControlColorWithIndex:pageNumber];
    if (pageNumber == 1) {
        pageText.text = @"Text in page 1";
    }
    if (pageNumber == 2) {
            pageText.text = @"Image in page 2";
    }
    if (pageNumber == 3) {
            pageText.text = @"Text in page 3";
    }

}

なぜうまくいかないのかわかりません。また、良い方法があれば教えてください。ありがとう。

4

3 に答える 3

0

このプロジェクトをSVNリポジトリからダウンロードしてみてください。ドキュメントを完成させることができませんでしたが、IGUIScrollViewElementsをチェックしてください... IGUIScrollViewImageの短い例があり、コードは非常に似ています...残りの例をできるだけ早く完成させるために最善を尽くします...

http://code.google.com/p/iphone-guru-uilibrary/

于 2010-04-12T15:51:43.953 に答える
0

サンプルをダウンロードし、次の行を MyViewController.h に追加しました

IBOutlet UILabel *pageText;

@property (nonatomic, retain) UILabel *pageText;

MyViewController.m に @synthesize pageText を追加しました。行とあなたのviewDidLoadコンテンツ。

インターフェイス ビルダーで MyView.xib/en ファイルを開き、新しいラベルを接続しました。コンパイルして実行したところ、ほとんどの場合機能しました。正しくないように思われたのは、ページが後ろにあることだけでした。そのため、奇数ページまたは偶数ページを適切に処理するように書き直しました。

- (void)viewDidLoad {
    pageNumberLabel.text = [NSString stringWithFormat:@"Page %d", pageNumber + 1];
    self.view.backgroundColor = [MyViewController pageControlColorWithIndex:pageNumber];
    if (pageNumber % 2) {
        pageText.text = [NSString stringWithFormat:@"Image in page %d", pageNumber + 1];
    } else {
        pageText.text = [NSString stringWithFormat:@"Text in page %d", pageNumber +1];
    }   
}
于 2009-08-20T07:09:24.047 に答える
0

明確な例がないため、この回答にはほとんどコードがありません。基本的に、各ページのビュー (またはビュー コントローラー) を保持するページの配列が必要です。配列内の各ビュー/コントローラーが同じである必要はありません (ただし、両方ではなく、すべてのビューまたはすべてのビュー コントローラーにする必要があります)。それができたら、ロードしているページに応じて異なるものをロードできます。

それは理にかなっていますか?

于 2009-08-20T07:15:59.493 に答える