2011-11-01 5 views
7

RootViewControllerのメインのUITableViewにあります。RootViewControllerのUITableViewでのフローティングビュー

どのように私は、画面に対する位置ではなくテーブルビューに、RootViewControllersのtableViewオーバービューを追加することができますので、それはそれでスクロールしませんか?

注 - テーブルの進行状況を示す新しいデータを示す進行状況バーです。

答えて

5

それはあなたのコードを掲載場合に役立つだろうが:あなたは、おそらくこのようなもので、あなたのRootViewControllerにUITableViewを追加している:

[self.view addSubview:myUITableView]; 

だけ(すなわち、それを追加するのと同じ方法であなたの浮動ビューを追加UITableViewではなく、あなたのビューコントローラに)。テーブルビューを追加した後に追加すると、すでにテーブルビューの上に表示されます。

[self.view bringSubviewToFront:myOverlayView]; 

あなたのオーバーレイビューは、サブクラスべきUIView、そしてそれは、それを透明にするために、[UIColor clearColor]への独自のbackgroundColorを設定する必要があります。そうしないと、このようなもので、トップにそれをもたらすことができます。オーバーレイサブクラスでhitTest:withEvent:をオーバーライドし、デフォルトの動作であるselfを返すのではなく、テーブルビューを返すように、ユーザーがテーブルビュー(おそらく発生したがっている)とやりとりできるようにするにはこれは、すべてのタッチを下のテーブルビューに渡します。

+3

userinteractionenabledをnoに設定すると、すべてのイベントが基になるビューに渡されます。ヒットテストをオーバーライドする必要はありません。 – jrturton

+0

@jrturton:そうです、それはhitTestをオーバーライドするよりはるかに簡単です。 – MusiGenesis

+0

私は自分のRootViewControllerクラスにいるので、 '[self.parentViewController.view addSubview:self.myOverlayView];'と書かなくてはなりません。 –

関連する問題