2

iPadの横向きのビューコントローラで2つの問題が発生しています。

(1)テーブルを保持するポップアップが2つあります。メインビューでの選択を反映するために、テーブルは特定の行にスクロールする必要があります。代わりに、テーブルは一部下にスクロールしますが、実際に選択された行は画面外のままです。

(2)私のアクションシートはすべて幅320です。

Interface Builderでは、すべてのビューが横向きで作成されます。メインウィンドウだけはそうではありませんが、それを変更する方法がわかりません。

構成:起動時に、メインウィンドウとメインビューコントローラービューの次の座標を取得します。

Window frame {{0, 0}, {768, 1024}} mainView frame {{0, 0}, {748, 1024}}

その後の他のすべてのビューは、呼び出されたとき(ロードされたが表示される前)にこれらの座標を表示します。

    frame of keysig {{0, 0}, {1024, 768}}
    frame of instrumentSelect {{20, 0}, {1024, 768}}
    frame of settings {{0, 0}, {467, 300}}

すべてのviewControllerで、次のように応答shouldAutorotateToInterfaceOrientationします。

            return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
                        (interfaceOrientation == UIInterfaceOrientationLandscapeRight));

すべて(ほぼ)期待どおりに機能します。アプリは、2つのランドスケープモードのいずれかで起動します。ビュー(およびビューコントローラ)には、それが属するすべてのものが表示され、タップは画面全体で期待どおりに機能します。しかし、私にはまだ2つの問題があります。

問題1:画面からはみ出すのに十分な長さのテーブルを含む2つのポップアップがあります。テーブルは選択した行までスクロールする必要があります。それらはスクロールします。つまり、行1から視覚的に開始しませんが、選択した行を実際に表示するのに十分なスクロールはしません。

代替テキストhttp://idisk.mac.com/mahboud//Public/keysig.png

代替テキストhttp://idisk.mac.com/mahboud//Public/instrumentlist.png

UITableの内部四角形が間違った番号で作成され、そのまま残っているように見えますが、UITableViewのscrollViewコンテンツ座標の両方を確認したところ、妥当なようでした。

問題2:アクションシートの幅が320であるため、これは問題1に関連していると思います。iPadでは320または480の幅のactionSheetsしか許可されておらず、画面が縦向きであると考えられているためです。 、狭い幅を使用します。

そこにあります。私はまだオリエンテーションの問題に夢中になっているとは信じられません。私は、Appleがランドスケープアプリを簡単に作成できるようにしていないことを誓います。何か案は?

4

1 に答える 1

0

私はそれを理解しました。私が取る場合

[self.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionNone animated:YES];

-viewDidAppearまたは-viewWillAppearのいずれかから、代わりに-presentPopoverFrom ...の直後に配置すると、次のように機能します。

[popController presentPopoverFromBarButtonItem:keySigBBItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

[keySignatureTableVC.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionMiddle animated:NO];

発生している必要があるのは、presentPopover ...がビューのサイズを変更したり、方向を変更したりする前に、-viewDidAppearと-viewWillAppearの両方が呼び出される必要があるということです。これらの2つの方法で私がしていることは、正しいフレームまたは境界で機能していません。後のスクロールは機能しているようです。

于 2010-05-03T10:18:20.207 に答える