Hoe schakel ik landschapsoriëntatie uit op een iPad-app?

Ik heb een geheel nieuwe, universele Swift-app voor iOS met één weergave gemaakt. Vervolgens heb ik “Landschap links” en “Landschap rechts” uitgeschakeld in de app-instellingen. Ik heb het op mijn iPhone uitgevoerd en hoera, het blijft in de portretmodus, hoe ik mijn telefoon ook draai. Toen heb ik het op mijn iPad uitgevoerd en het draait naar alles. Zelfs de portretmodus ondersteboven, die in de eerste plaats niet was ingeschakeld? Ben ik de enige die dit ervaart? Dit gebeurt ook in de iPad-simulator als ik draai met command + pijltoets.

Ik heb ook geprobeerd het volgende toe te voegen aan ViewController.swift, en kreeg hetzelfde resultaat.

override func shouldAutorotate() -> Bool {
    return false
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.Portrait
}

Is er geen manier om het draaien van portret op iPad daadwerkelijk uit te schakelen?


Antwoord 1, autoriteit 100%

Het werkt perfect. Je hoeft er geen code voor te schrijven.

Selecteer eerst het project en ga dan naar het eerste tabblad “Algemeen”.

Selecteer nu de optie “Apparaten” in het gedeelte Implementatie-informatie is iPaden selecteer daar beneden Apparaatoriëntatie.. Waarbij verwijder het vinkje uit de liggende optie Links, Rechts

Als u klaar bent, selecteert u het apparaat terug als universeel en stelt u de apparaatoriëntatie in op portretmodus en verwijdert u het vinkje uit de liggende modus.

Voer nu uw app op iPad uit en controleer die dingen. Ik hoop dat het wordt opgelost.


Antwoord 2, autoriteit 69%

Er zijn afzonderlijke vermeldingen in Info.plist voor ondersteunde oriëntaties voor iPhone en iPad.

  • iPhone = UISupportedInterfaceOrientations
  • iPad = UISupportedInterfaceOrientations~ipad

U moet Info.plist aanpassen en landschapsvermeldingen voor de sleutel UISupportedInterfaceOrientations~ipad verwijderen.


Antwoord 3, autoriteit 55%

Werkt voor mij!

Open info.plistals broncode, je ziet deze eigenschappen:

  • UISupportedInterfaceOrientations: voor iPhone
  • UISupportedInterfaceOrientations~ipad: voor iPad

Volledige oriëntatiemodi

Onder UISupportedInterfaceOrientations~ipadverwijder je je ongewenste oriëntatiemodus. In mijn geval wil ik alleen de portretmodus, dus heb ik de restmodi verwijderd en opgeslagen.

Alleen portretmodus

Klaar! Veel succes


Antwoord 4, autoriteit 31%

Xcode 11 gebruiken

De instellingen voor iPhone-oriëntatie en iPad-oriëntatie kunnen onafhankelijk van elkaar worden ingesteld met behulp van de instellingen voor implementatie-info. Het is niet nodig om de info.plist bij te werken voor oriëntatie. Als u de implementatie-informatie bijwerkt, wordt info.plist voor u bijgewerkt. (Dit is niet intuïtief en kan over het hoofd worden gezien)

Stel bijvoorbeeld de iPhone-implementatie-informatie in door alleende iPhone te selecteren.
voer hier de afbeeldingsbeschrijving in

Selecteer vervolgens de iPad-implementatie-informatie door alleende iPad te selecteren. Verwijder hier de landschapsselecties.
voer hier de afbeeldingsbeschrijving in

Als u klaar bent en u zowel iPhone- als iPad-instellingen wilt, selecteert u ze allebei. De instellingen blijven voor zowel iPhone als iPad behouden, zelfs als ze verschillen (de oriëntatie-instellingen van de iPhone worden weergegeven, maar die van de iPad blijven).
voer hier de afbeeldingsbeschrijving in

Als je teruggaat naar alleen iPad, zie je dat de instellingen nog steeds aanwezig zijn.
voer hier de afbeeldingsbeschrijving in

De info.plist geeft ook de wijzigingen weer die zijn aangebracht op iPhone en iPad met behulp van de Implementatie-info.
voer hier de afbeeldingsbeschrijving in


Antwoord 5, autoriteit 10%

Het geaccepteerde antwoord werkt niet helemaal voor iOS 13 en later, vanwege ondersteuning voor Split View.

In principe wordt de instelling Supported Interface Orientationsgenegeerd op iPad als je Enable Multiple Windowshebt ingesteld op TRUE. De grondgedachte hier is dat als u uw app in Split View laat werken, deze kan worden geplet tot ‘oneven’ dimensies die deze moet ondersteunen. Dus standaard zou het elke oriëntatie moeten ondersteunen.

Dit is allemaal een beetje onintuïtief, maar als gevolg van het bovenstaande moet je Enable Multiple Windowsinstellen op FALSEin je PLIST-bestand.

Dit is met name niet intuïtief voor iPhone-apps, omdat je niet onredelijk zou aannemen dat de iPhone-instellingen zouden worden overgedragen naar iPad, op voorwaarde natuurlijk dat je geen aparte iPad-oriëntatie-instellingen hebt ingesteld, zoals andere antwoorden hier hebben gedocumenteerd.

Dus hier is een schermoverzicht van wat u moet doen:
Ondersteuning voor iPhone- of iPad-app met alleen portret

Specifiek:

  1. Selecteer iPad en deselecteer iPhone
  2. Stel de ondersteuning voor oriëntaties naar wens in
  3. Uitgeschakeld Ondersteunt meerdere vensters
  4. Schakel terug naar alleen iPhone

Antwoord 6, autoriteit 9%

Deze afbeelding is voldoende, selecteer alleen Portret.

portretmodus instellen


bewerken voor de opmerking van Shyam

Xcode8.3.3 MacOS Sierra v10.12.5

voer hier de afbeeldingsbeschrijving in


Antwoord 7, autoriteit 9%

In Xcode 10 tenminste, voor een universele app is deze functie kapot. Voor een universele app die de oriëntatiebeperking instelt door de relevante oriëntatie te controleren, werkt alleen voor iPhone, u moet naar de plist gaan en de ongewenste oriëntaties verwijderen onder “Ondersteunde interface-oriëntaties (iPad)”, waar u alle vier de oriëntaties vindt die op u wachten ongeacht wat je hebt gecontroleerd. Het is gewoon een bug in Xcode die blijkbaar geen hoge prioriteit heeft omdat het al een tijdje bestaat.


Antwoord 8, autoriteit 4%

dit proces van overschrijven werkt nu niet.. en alleen het wijzigen van de door de gebruikersinterface ondersteunde interface-oriataties voor ipad in info.plist zal het probleem slechts tijdelijk oplossen, maar zal een probleem veroorzaken wanneer u voor app-validatie en app-oproep naar de app store gaat .. Voor een succesvolle validatie en indiening moet u ook de sleutel

. toevoegen

“UIRequiresFullScreen”

je moet de sleutels op deze manier aanpassen..

<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UIRequiresFullScreen</key>
<true/>

Ik heb dit getest…


Antwoord 9

xCode 11

project —-> Algemeen —–> Apparaten —->iPad

iPad

Other episodes