0

チャプターとページを反映するために、ビューで2つのUIPageControlsを使用しています。そこで、ユーザーがどこにいるかを示すために、chapterCountという名前のUIPageControlとpageCountという名前のUIPageControlを1つ定義しました。UIPageControlsを使用するのではなく、スワイプでページのめくりを処理します(したがって、メソッドは定義されていません)。

ユーザーが次のコードでページを変更すると、値が変更されます。

chapterCount.numberOfPages = chapters;
chapterCount.currentPage = chapterNumber;

pageCount.numberOfPages = pages;
pageCount.currentPage = pageNumber;

[chapterCount updateCurrentPageDisplay];
[pageCount updateCurrentPageDisplay];

ここで、chapter、chapterNumber、pages、pageNumberはすべて整数です。

初めてページをめくるときは通常は正常に機能しますが、前のチャプターに移動したり、新しいチャプターを開始したりすると、最初(または方向によっては最後)のドットが表示されません。写真をご覧ください(上半分にドットがなく、下半分にドットがあります)。

代替テキストhttp://img80.imageshack.us/img80/3339/pagecontrol.png

それはコントロールを更新する同じコードであり、時々私はドットを取得しますが、そうでない場合もあります。NSLOGで変数をチェックすると、それらは正しいです(たとえば、上の両方の写真で同じです)。

私はAppleのドキュメントをチェックして、その例を試しましたが、うまくいきませんでした。

トラブルシューティングはどこから始めればよいですか?夢中になっている!!

4

2 に答える 2

5

私はついに問題を見つけました:-)

ページ数に値 0 が指定された UIPageControl は、次回の更新時に正しく表示されません。配列から章番号とページ番号を読み取っていましたが、最初は (本の表紙としましょう) 表示するページも章もないので、喜んでこれらを 0 に設定しました。ソース データを変更したくなかったので私の配列では、numberOfPages に MAX(pages , 1) を使用したので、時計仕掛けのように動作しています。

于 2010-06-29T10:42:32.937 に答える
0

あなたのchapterCountとpageCountビューがnilではないことを確認しますか?あなたは一日中有効な値を持つことができます、メッセージnilは何もせずに戻りますnil。チャプターを変更するときは、ビューとコントローラーの配線/配線解除を再確認してください。

編集:

コントロールのサイズがすべてのページを保持するのに十分な大きさであり、ビューの境界がクリップされていないことを確認してください。たとえば、10ページあり、「現在の」ページが10で、表示されているドットが9つしかない場合、白いドットが表示可能領域の外側にあるために表示領域から切り取られるため、何も強調表示されていないように見えます。境界。これを使用して、サイズを動的に調整できます。

- (CGSize)sizeForNumberOfPages:(NSInteger)pageCount
于 2010-06-25T03:33:02.307 に答える