2009-05-25 10 views
2

Ich habe eine UITableview, die ich nach oben scrollen möchte, wenn die Statusleiste berührt wird.Wie erkenne ich eine Berührung in der iPhone-Statusleiste?

Ich erwartete, eine Benachrichtigung zu finden, die ich hören konnte und dann tableview verwenden: scrollToRowAtIndexPath: für die Bildlaufleiste, kann aber keine finden.

Gibt es eine Möglichkeit, dies zu tun?

[Update]

einige mehr im Netz zu finden, ich bin misstrauisch, dass dies der Simulator mich beißen ist. Mein UIScrollView scrollt im Simulator nicht nach oben, aber ich habe es nicht mit Hardware versucht. Außerdem habe ich ein UIScrollView, aber auch UITextView, also frage ich mich, ob es das isst.

Ich werde sehen, was ich mit scrollsToTop tun kann.

+0

scrollsToTop macht den Trick. Später hörte es auf zu arbeiten, weil ich dem Projekt mehr UITextViews hinzugefügt hatte. Es war notwendig, scrollsToTop bei jedem im Code explizit auszuschalten. –

Antwort

4

This article auf cocoawithlove.com ist genau das, was Sie wollen.

Von diesem Artikel.

„Der schwierigste Teil der Probe Anwendung wird in die Statusleiste ein berührungsempfindlichen Detektor

einem benutzerdefinierten setContentOffset Durch die Implementierung: animierte: Methode auf einem UITableView und setzen einen Haltepunkt in dieser Methode, können Sie in der Debugger-Stack, dass die UIApplication sendEvent: -Methode aufgerufen wird für Status ba r berührt, so dass wir beginnen werden. "

+1

funktioniert nicht mehr. –

+0

@ Max Seelemann - Schade. :( – Kriem

1

Dies sollte automatisch geschehen, es sei denn, Sie legen die Eigenschaft scrollsToTop auf NO fest.

+0

True. Aber es kann nur eine scrollView mit scrollsToTop als YES geben. Das Fangen einer Berührung, um andere phantastische Sachen neben dem scrollView Scrollen nach oben zu tun, ist so nicht möglich. Aber ich stimme dir zu, dass setScrollsToTop : JA ist die einfachste Lösung :) – Kriem

+0

Guter Punkt.In der ursprünglichen Frage sah es nicht so aus, als müssten Sie etwas Besonderes machen. –

0

Dies könnte zu viel Overkill sein, aber Sie könnten Ihre eigene Statusleiste schreiben.

Sie können die aktuelle Statusleiste ausblenden, indem Sie die Option "Statusleiste ist anfänglich ausgeblendet" in Ihrer Anwendung auf JA setzen. Erstellen Sie dann Ihre eigene benutzerdefinierte Statusleistenansicht am oberen Rand der Ansicht mit einer Höhe von 20 Pixeln, die entweder eine UIB-Schaltfläche oder einfach eine UIView mit einem UITapGestureRecognizer ist.

Sie können Batteriestand/Zustand (Ladung und aufgestecktem oder nicht) mit erfassen:

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

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

Sie erhalten die Zeit mit [NSDate Datum]; (Verwenden Sie dann NSDateFormatter zum Formatieren).

Die Signalstärke ist a little iffy, kann aber mit einem gewissen Grad an Einfallsreichtum geschätzt werden.

Verwandte Themen