2009-05-25 9 views
2

私はステータスバーがタッチされたときに上にスクロールしたいと思うUITableviewを持っています。iPhoneのステータスバーでタッチを検出するにはどうすればよいですか?

私は聞くことができ、次にscrollviewRowAtIndexPath:tableviewを使用するという通知を見つけることが予想されましたが、スクロールには何も見つかりません。

これを行う方法はありますか?

[更新]

ネット上でいくつかのより多くのを見つける、私はこれが私を噛んシミュレータであることを不審です。私のUIScrollViewは、シミュレータの上部にスクロールしていませんが、ハードウェアを試していません。また、私は1つのUIScrollViewを持っていますが、それはそれを食べているのだろうかと思うので、UITextViewもあります。

私はscrollsToTopで何ができるかを見ていきます。

+0

scrollsToTopがトリックです。後で私はプロジェクトにさらにUITextViewを追加したので、動作を停止しました。コード内のそれぞれのscrollsToTopを明示的にオフにする必要がありました。 –

答えて

4

This articlecocoawithlove.comはまさにあなたが望むものです。その記事から

:。 にする方法:アニメーション:

「サンプル アプリケーションは ステータスバーにタッチを検出しているのトリッキーな部分

カスタム setContentOffsetを実装することにより、そのメソッドにブレークポイント を設定すると、UIApplication sendEvent:メソッドが呼び出された デバッガスタックに、 ステータスbaが表示されますrが触れるので、ここでは を開始します。

+1

もう動作しません。 –

+0

@ Max Seelemann - あまりにも悪い。 :( – Kriem

1

scrollsToTopプロパティをNOに設定しない限り、自動的に行われます。

+0

True。ただし、scrolltToTopがYESに設定されているscrollViewは1つしかない可能性があります。scrollView以外の他の工夫をするためにタッチをキャッチすることはできません。 :YESは最も簡単な解決策です:) – Kriem

+0

良い点。元の質問では、あなたは何か派手なことをする必要があるようには見えませんでした。 –

0

これは重大な過労かもしれませんが、独自のステータスバーを作成することもできます。

アプリケーションplistで「ステータスバーは最初は非表示」をYESに設定することで、実際のステータスバーを非表示にすることができます。その後、高さ20px(UIButtonまたは単にUITapGestureRecognizerを持つUIView)で、ビューの上部に独自のカスタムステータスバービューを作成します。

あなたはとバッテリレベル/状態(充電とプラグインされたりしない)を検出することができます:あなたは[NSDate日付]との時間を得ることができます

UIDevice *myDevice = [UIDevice currentDevice]; 
[myDevice setBatteryMonitoringEnabled:YES]; 

float batteryLevel = [myDevice batteryLevel]; 
UIDeviceBatteryState batteryState = [myDevice batteryState]; 

。 (NSDateFormatterを使用してフォーマットします)。

信号強度の取得はa little iffyですが、ある程度の工夫によって概算できます。

関連する問題