2

私のアプリケーションにはページングされたスクロールビューがあります。スクロールビューの各ページには、ボタンのグリッドを表示するビューコントローラー(buttonViewController)のインスタンスがあります。ユーザーがボタンの1つをクリックすると、buttonViewControllerは、アニメーションをYESに設定して、detailViewControllerをモーダルに起動します。

最初のページ(左端)またはスクロールビューを表示している場合、すべてが正しく機能します。ただし、他のページにスクロールすると、モーダルビューアニメーション(この場合は下から上にスライド)が表示されません。代わりに、アニメーションが実行されるのと同じ時間、ビュー全体が黒くなり、モーダルビューコントローラが完全に表示されます。モーダルビューコントローラを閉じるときにも同じことが起こります。

コードは完全に標準です。私のbuttonViewControllerで、次のように呼び出します。

[self presentModalViewController:detailController animated:YES];

どのページを見ていても同じコードが実行されます(もちろん、buttonViewControllerのさまざまなインスタンスで実行されます)。

これをデバッグするにはどうすればよいですか?

4

2 に答える 2

2

これは、detailControllerのフレームに関係している可能性があります... UIScrollViewを使用している場合、最初のページは0〜320ですが、そのオフセットをスクロールすると、(フルスクリーンページがあると仮定して)次のビューが表示されます。 320と640になり、次は640と(640 + 320)になり、以下同様に続きます。したがって、フレームCGRectMake(0,0,320,460)を使用してdetailControllerを設定している場合、最初のページにいるときはアニメーションは正常に見えますが、他のページにいるときはアニメーションは(0,0)で行われます。次に、ビューコントローラがこれがアクティブな画面ではないことを確認し、モーダルビューコントローラをアクティブな画面がある場所に移動すると推測します。このCGRectMake(320 * pageNumber、0,320,460)のようにフレームを初期化すると、探している望ましい動作が得られると思います。

于 2009-07-28T17:32:38.663 に答える
0

アニメーション化しようとしているビューの下にUIView(またはUIScrollViewなどの任意の種類のビュー)を挿入する必要があります。アニメーションが正しく機能するようになります。これは、アニメーションのベースとなるビューを提供しているためだと思います。

于 2009-11-30T20:58:12.253 に答える