2013-10-10 13 views
26

Opracowałem aplikację, która wykorzystuje gest machnięcia od dołu do góry. To działało idealnie w systemie iOS 6, ale teraz wyszedł iOS 7 i działa 1 na 25 razy: prawie zawsze uzyskuję iOS 7 Control Center. Oczywiście, Centrum sterowania można wyłączyć w Ustawieniach, ale to zależy od właściciela telefonu i nie mogę tego kontrolować. Moje pytanie brzmi: czy istnieje sposób na wyłączenie Control Center na czas, kiedy moja aplikacja jest uruchomiona (lub, co bardziej prawdopodobne, jest "aktywna", ponieważ chciałabym, aby Centrum sterowania zostało przywrócone, jeśli użytkownik nie aktywnie korzysta z mojej aplikacji). Jeśli nie, jakie są alternatywy? Czy przeniesienie/przerobienie tej funkcjonalności jest jedynym rozwiązaniem?Czy programowo można wyłączyć Control Center w systemie iOS 7, a jeśli nie, jakie są alternatywy?

+3

Brak opcji. Jest mało prawdopodobne, że będzie to opcja w przyszłości. Najlepiej przerobić swój interfejs. – Wain

+1

@ Wain jest jakiś szczególny powód, dla którego byłoby to mało prawdopodobne w przyszłości? –

+4

Ponieważ firma Apple chce zachować spójność dla użytkowników. Jeśli którakolwiek aplikacja może ją wyłączyć, jak użytkownicy będą wiedzieć? – Wain

Odpowiedz

11

Żadnych alternatyw, naprawdę. Najlepsze, co możesz zrobić, to ostrzec użytkowników i poprosić ich o przejście do ustawień, aby je wyłączyć.

Realistycznie, stracisz wielu użytkowników, prosząc o to, więc powinieneś zmienić gesty.

+1

Tak, niestety, przeniosłem ikony kontrolne z góry na dół, aby uniknąć kolizji z centrum powiadomień. Następnie wychodzi iOS7, a dno nie jest już opcją, ponieważ użytkownik może przesuwać palcem od dołu. Więc góra i dół są na zewnątrz. Lewo i prawo to kiepskie opcje z powodu problemów z nieruchomościami. –

49

W rzeczywistości istnieje opcja. Nie możesz go wyłączyć. Ale możesz zapobiec przypadkowemu uruchomieniu. Po prostu wyłącz pasek stanu. Następnie po przesunięciu użytkownik zostanie zapytany, czy centrum sterowania ma zostać uruchomione, czy nie. nie zostanie uruchomiona jednym ruchem. Zamiast tego po pierwszym przesunięciu pojawia się strzałka, a użytkownik musi kliknąć i przeciągnąć strzałkę, aby uruchomić centrum sterowania, a tym samym zapobiec przypadkowemu uruchomieniu. Użyj tego kodu, aby wyłączyć pasek stanu.

można wyłączyć pasek stanu przy użyciu tego delegata w IOS7:

- (BOOL) prefersStatusBarHidden 
{ 
    return YES; 
} 

a ta metoda w IOS6.1 i przed:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
+2

To dla powiadomień (przesuwając od góry). Pytanie dotyczy centrum sterowania (przesuwając od dołu). – jrturton

+17

Ukrywanie paska stanu zapobiega przypadkowemu uruchomieniu zarówno powiadomień, jak i centrum kontroli. Próbowałem tego. Spróbuj i zobacz sztuczkę. PS: Nie wyłącza niczego, tylko zapobiega przypadkowemu uruchomieniu. –

+3

Tak jest! Mieć głos w górę i dziękuję za poprawkę. – jrturton

9

Począwszy od 11 iOS SDK (skompilowany w Xcode 9), ponadto do realizacji prefersStatusBarHidden:

Cel C:

- (BOOL) prefersStatusBarHidden 
{ 
    return YES; 
} 

Swift 4+:

override var prefersStatusBarHidden: Bool { return true } 

trzeba także wdrożyć preferredScreenEdgesDeferringSystemGestures:

Objective-C:

- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures{ 
    return UIRectEdgeAll; 
}; 

Swift 4+:

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge { 
    return .all 
} 

Inaczej Centrum sterowania/Powiadomienie pojawiają się bezpośrednio; zamiast wyświetlać najpierw szare pole ze strzałką w górę/w dół, która musi być przeciągnięta w górę/w dół.

Powiązane problemy