2011-11-30 8 views
9

UIScrollViewを持つUIViewControllerがあるとします。ビューの上部には、UIImageView、いくつかのUILabelsなどがあります。さらに、内容がDynamic PrototypであるUITableViewがあります。私はそれを明確にする画像を添付:UIScrollViewのUITableView - ビューのスクロールを行う方法はありますが、TableView自体はできません。

enter image description here

それはスクロール可能ことができるように、私はのUITableViewのセルの静的な量を持っていません。私の問題は次のとおりです:UITableView自体がスクロールするが、私は全体のビューをスクロールしたい。それを行う最良の可能性は何ですか?私は今日

1を設立しました


可能な解決策)最初の事はある:私は(私は大好きだのUITableViewControllerを作成し、私はプログラム的にすべての私のラベル、画像などが含まれるヘッダ部を宣言そのためにインタフェースビルダを使用する...)

2)別の解決策は、ビューの高さを計算することです。私はこのようにするのが最善の方法でしたが、成功しませんでした。これが最良の方法であれば、誰でも例を挙げることができますか?

答えて

19

私はUIScrollViewを寄せ、UITableViewを使用します。 UIViewオブジェクトをUITableViewtableHeaderViewとして追加するには、それをInterface Builderでドラッグするだけです。すべてがUITableView階層の一部であるため、すべてが期待どおりにスクロールします。

+0

ありがとうありがとうございました!あなたは私の一日を作った - それは好きなクリスマスプレゼントのようなものです; o) –

+1

/指の鼻に触れ、SOのチムニーをロケットにします –

+0

あなたには、非常に良い答えを与えました。私よりも良い。 :) –

1

画像とボタンを含むUIViewを実際のUITableViewに追加する必要があります。スクロールビューに埋め込むことで、あなたが見ている望ましくない動作が発生します。

テーブルビューの最初のセクションのヘッダービューとしてUIViewを返すことをお勧めします。あなたのイメージ/ラベルを含むビューにIBOutletを維持した場合、あなたはここでそれを返すことができ

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 

:あなたはUITableViewDelegateメソッドを実装することによってこれを行うことができます。

+0

あなたの答えをありがとう。私がこのようにしたら、イメージ/ラベルをすべてプログラムで実装する必要があります。私はそれを避けたいと思っています... –

+0

いいえ、画像/ラベルを含む 'UIView'が' UITableViewDelegate'の 'IBOutlet'として定義されている限り、Interface Builderを使用することはできます。 –

+0

ああ大丈夫です!今私はあなたが意味することを理解しています。あなたの権利だ!素晴らしい解決策、ありがとうございます:-) –

2

scrollViewdelaysContentTouchesNOに設定してみることもできます。設定によっては、スクロールビューがテーブルビューではなく最初にタッチに応答する場合があります。

delaysContentTouches

スクロールビューがタッチダウンジェスチャーの 処理を遅らせるかどうかを決定するブール値:りんごUIScrollView Docsから

@property(nonatomic) BOOL delaysContentTouches

ディスカッション

このプロパティの値がYESある場合は、スクロールが 意図であるならば、それは決定できるまで タッチダウンジェスチャーを扱うスクロールビューの遅延。値がNOの場合、スクロールビューはすぐに touchesShouldBegin:withEvent:inContentView:を呼び出します。デフォルトの の値はYESです。

+0

私もこれを試してみましょう - もう一つの素晴らしい解決策であるようです。ありがとう:-) –

関連する問題