2009-08-20 10 views
0

pagecontrolとUIScrollViewを使用して各ページをカスタマイズする際に問題があります。 AppleからPage Controlをカスタマイズしています。Page ControlとUIScrollViewを使用して各ページのコンテンツをカスタマイズする方法は?

基本的には、それぞれのページをテキストとイメージが異なるページに交互に表示したいと考えています。ページ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ページなどを示しています。

私はこの新しいコードを入れようとしましたが、それは何の違いもありませんでした。エラーはありません。 これはかなりシンプルなコードだと思います。私はなぜそれが動作しません。

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

// 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"; 
    } 

} 

なぜ動作しないのかわかりません。また、あなたがそれを行うより良い方法を持っている場合は、私に教えてください。ありがとう。

答えて

0

Iは、サンプルをダウンロードし、私は@synthesizeのpageTextを添加MyViewController.mでMyViewController.h

IBOutlet UILabel *pageText; 

@property (nonatomic, retain) UILabel *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]; 
    } 
} 
+0

ありがとうございます。私は、ページのテキストをnibファイルに接続するのを忘れたと思う。私はそれをして、あなたのコードを置く - うまく動作! ただし、どのように各ページをカスタマイズしますか? Say、 Page 1 - テキストを入力する Page 2 - 画像を置く(イメージを置くコードを与えることができれば非常に役に立ちます) Page 3 - あなたはテキストをいくつか入れますが、テキストは異なります。 Page 4 - 異なる画像を挿入する また、新しいコードをifステートメントの下に置くと、そのコードはpageNumberLabelの最初の行コードを上書きします。 pageNumberLabelとpageTextはどのように分かれていますか?もちろん、同じ内容の別のページにはありますか? – viper15

+0

私はそれを得た。私はpageTextを指すUIlabelを作成したので、それをpageNumberLabelから分離します。私は文を使用しています - うまく動作します。 ありがとう! – viper15

0

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

それは意味がありますか?

+0

それは正しい人です。私はちょうど配列を使用して文字列や画像を代わりに使用することはできませんか?私が配列を使用している場合、AppleからのPage Controlをベースにしていれば、これをどのように実装できますか? – viper15

0

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

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

関連する問題