2

(ここで私の最初の質問;)

メールで見られる機能を実装しようとしています: 前または次のメールをロードするための上下ボタンがあります。

私の場合、約 100 のエントリを持つ UITableView があり、行を選択すると、巨大な空の UIScrollView が読み込まれます。そして、DetailView が読み込まれる右側のオフセットに表示されます。この巨大なスクロールビュー (ページングが有効になっている) では、各ページが画面のサイズです。DetailView には UIScrollview が含まれており、コンテンツ (テキスト) といくつかのボタン (メール、サファリでリンクを開くなど) が表示されます。

NSSet を使用する (DetailView *)dequeueRecycledPage メソッドを使用するため、最大 3 つの UIViewControllers が生きています。(現在、前、次)。迅速な対応のために。

ナビゲーションバーのボタンは、巨大なスクロールビューに「scrollRectToVisible:animated:YES」を指示するため、ユーザーは新しいビューがスライドインするのを見ることができます。

現在、私の DetailView は UIView からサブクラス化されており、動作します。しかし、この DetailView のボタン アクションに多くの委任は必要ありません。DetailView にそれらを処理してもらいたいです。したがって、UIViewController から DetailView をサブクラス化したいと思います。しかし、3 つの UIViewControllers (一度に 1 つしか表示されない) を持つ巨大な空のスクロールビューがあります。しかし、おそらく Apple はこれに熱心ではないか、あるいは私が何らかのトラブルに遭遇する可能性があります。

だから私の質問はこれに帰着します:

  • UIScrollView に複数の UIViewControllers を含めることはできますか (一度に 1 つだけ表示されます)、またはこれは「行われていない」か、単に間違っていますか?

助けてくれてありがとう、G

4

3 に答える 3

1

1つのUIScrollViewに3つの異なるUIViewControllerのUIViewを含めることは理論的には可能ですが、達成しようとしていることのベストプラクティスであるとは限りません。

通常、より良い設計は、UIScrollViewをUIViewControllerに属し、UIScrollView(またはそのサブクラス)をUIScrollViewに追加できるようにすることです。3つの異なるUIViewControllerを作成してそれらのビューをUIScrollViewに追加する代わりに、3つの異なるUIViewを作成し、それらのビューをUIScrollViewに追加することができます。

于 2012-05-30T00:17:00.120 に答える
0

1 つのスクロール ビュー内に 2 つの (したがって複数の) ビューを表示できることはわかっています。

正確なコードが何であるかはわかりませんが、おそらく次のようなものが必要になるでしょう。

myScrollView.addSubView(viewName).

ビューを非表示にするには、次の操作を行います。

if (logicToHideViewIsTrue) {
    [viewName setHidden:YES];
 }

詳細はこちら

于 2012-05-30T00:02:15.150 に答える
0

通常、UIViewController は画面全体を包含し、一度に表示できるのは 1 つだけです。メール アプリ ビューを実装する方法には、UINavigationController、UIViewController、および UIScrollView が含まれます。

UIViewController は、ナビゲーション ツールバーに上/下ボタンを追加する必要があります。

UIViewController には、UIScrollView である必要があるビューがあります。上/下ボタンが押されると、UIViewController はこのメッセージを受け取り、UIScrollView にそのビューを新しいコンテンツに変更するように指示する必要があります。

于 2012-05-30T00:06:31.153 に答える