pracuję nad projektem uniwersalnego z tymi wymaganiami:odmiennej orientacji Urządzenie według urządzenia (iPhone lub iPad)
- iPhone, chcę tylko orientację pionową.
- Dla iPada, tylko krajobrazy.
Jak to zrobić dla iOS 8 (Swift)?
pracuję nad projektem uniwersalnego z tymi wymaganiami:odmiennej orientacji Urządzenie według urządzenia (iPhone lub iPad)
Jak to zrobić dla iOS 8 (Swift)?
Idąc za radą @ScarletMerlin, zmiana kluczy w info.plist jest, moim zdaniem, najlepszym rozwiązaniem dla wymagań, które muszę spełnić (stały typ orientacji dla każdego rodzaju urządzenia).
Oto ekran drukowania z ustawień, których używam. Może to może pomóc innym programistom z podobnymi wątpliwościami.
Kod źródłowy relavent wygląda następująco:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
Moja sugestia to sprawdzenie sprzętu, na którym działa aplikacja. Aby to zrobić, użyj tego wiersza kodu.
if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
Potem, kiedy już wykryty sprzęt, zablokować orientację przestrzenną za pomocą shouldAutorotateToInterfaceOrientation:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
{
return UIInterfaceOrientationIsLandscape(orientation);
}
Tylko jako przykład, można zrobić to
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
{
if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
return UIInterfaceOrientationIsLandscape(orientation); // If iPad
else
return UIInterfaceOrientationIsPortrait(orientation); // Else, it is an iPhone
}
pan próbował info.plist w Xcode? – ScarletMerlin
Witam @ScarletMerlin. Dziękuję za radę. Nie wiem, jak przegapiłem klucz "Obsługiwane orientacje interfejsu (iPad)". Korzystanie z tego klucza działa zgodnie z wymaganiami. Nie krępuj się, aby utworzyć odpowiedź, więc mogę przegłosować. Zdrowie przyjacielu. – insetoman
Nie martw się Nie potrzebuję punktów z zatwierdzonej odpowiedzi. Plik info.plist określa sposób obsługi ustawień globalnych. możesz również zrobić to na kodzie, ale rzadko jest to zalecane. – ScarletMerlin