2

ステータスバーに触れたときに一番上までスクロールしたい UITableview があります。

私は、スクロールに tableview:scrollToRowAtIndexPath: を聞いてから使用できる通知を見つけることを期待していましたが、何も見つかりませんでした。

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

[アップデート]

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

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

4

3 に答える 3

4

cocoawithlove.com のこの記事はまさにあなたが望むものです。

その記事から:

「サンプル アプリケーションで最も難しい部分は、ステータス バーでのタッチの検出です。

カスタムの setContentOffset:animated: メソッドを UITableView に実装し、そのメソッドにブレークポイントを設定することで、デバッガー スタックで UIApplication sendEvent: メソッドがステータス バーのタッチに対して呼び出されることを確認できるので、そこから始めます。」

于 2009-05-25T16:15:26.553 に答える
1

scrollsToTop プロパティを NO に設定しない限り、自動的に発生するはずです。

于 2009-05-25T16:32:39.547 に答える
0

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

アプリケーションのplistで[ステータスバーは最初は非表示になっています]を[はい]に設定すると、実際のステータスバーを非表示にできます。次に、ビューの上部に高さ20pxの独自のカスタムステータスバービューを作成します。これは、UIButtonまたはUITapGestureRecognizerを使用したUIViewのいずれかです。

バッテリーのレベル/状態(充電されているかどうか)は、次の方法で検出できます。

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

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

[NSDatedate]で時刻を取得できます。(次に、NSDateFormatterを使用してフォーマットします)。

信号強度を取得するのは少し難しいですが、ある程度の工夫で大まかに見積もることができます。

于 2011-07-06T23:06:30.627 に答える