2009-05-25 2 views
2

У меня есть UITableview, что я бы хотел прокрутить вверх, когда коснулась строка состояния.Как обнаружить касание в строке состояния iPhone?

Ожидалось найти уведомление, которое я мог бы прослушать, а затем использовать tableview: scrollToRowAtIndexPath: для прокрутки, но не может найти ничего.

Есть ли способ сделать это?

[Update]

Обнаружение некоторых более в сети, я с подозрением, что это симулятор кусает меня. Мой UIScrollView не прокручивается вверху в симуляторе, но я не пробовал аппаратное обеспечение. Кроме того, у меня есть один UIScrollView, но также UITextView, поэтому я задаюсь вопросом, есть ли это.

Я посмотрю, что я могу сделать с помощью scrollsToTop.

+0

scrollsToTop делает трюк. Позже он перестает работать, потому что я добавил в проект больше UITextView. Необходимо было явно отключить scrollsToTop для каждого из кода. –

ответ

4

This articlecocoawithlove.com - это именно то, что вы хотите.

Из этой статьи:.

«Самая хитрая часть приложения образца является обнаруживая нотку в строку состояния

При реализации пользовательских setContentOffset: анимированные: метод на UITableView и установив точку останова в этом методе, вы можете увидеть в стеке отладчика , что метод sendEvent: UIApplication вызывается для состояния status ba r касается, так вот где начнем ».

+1

Больше не работает. –

+0

@ Макс Силеманн - Слишком плохо. :( – Kriem

1

Это должно происходить автоматически, если вы не установили для свойства scrollsToTop значение NO.

+0

True. Но может быть только один scrollView с scrollsToTop, установленный как YES. Ловить прикосновение, чтобы делать другие причудливые вещи, кроме прокрутки scrollView наверху, невозможно. Но я согласен с вами, что setScrollsToTop : ДА - самое простое решение. :) – Kriem

+0

Хорошая точка.В оригинальном вопросе не было похоже, что вам нужно что-то делать. –

0

Это может быть серьезный перебор, но вы можете написать свою собственную строку состояния.

Вы можете скрыть фактическую строку состояния, установив «Строка состояния изначально скрытой» на YES в вашем прикладном плане. Затем создайте свой собственный профиль состояния в верхней части представления с высотой 20 пикселей, которая является либо UIButton, либо просто UIView с UITapGestureRecognizer.

Вы можете обнаружить батареи уровень/состояние (заряд и подключен, или нет) с:

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

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

Вы можете получить время с [дата] NSDate; (затем используйте формат NSDateFormatter для форматирования).

Получение уровня сигнала a little iffy, но его можно приблизительно оценить с определенной степенью изобретательности.

Смежные вопросы