Einheitliche screensize

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Einheitliche screensize

    Hallo,

    bis zur Veröffentlichung von Xcode 6 / iPhone 6 wurde die screenSize je nach Lage des Gerätes (iPhone5/s) mit 320/568 angegeben.

    Das selbe Verhältnis wird auch bei Projekten, die mir Xcode 5 gebaut wurden, bei den neuen Modellen (iPhone 6/6 plus) angewendet.

    Nun wird allerdings in Projekten, die mit Xcode 6 gebaut sind und den selben Code enthalten:
    ​ [UIScreen mainScreen].bounds.size.width

    414 als Resultat ausgegeben.

    Frage: gibt es eine Möglichkeit dem System zu sagen bitte nicht die native Auflösung zurück auf 320/568 zu setzen?
  • Es geht nicht um die Auswahl des Simulators, sondern darum, dass die Darstellung auf EINEM bestimmten Simulator korrekt sein soll, sondern sich auf allen Geräten ähnlich verhalten soll:
    In der Realität kann ich auch nicht festlegen, dass die app auf dem iPhone 6 Plus nicht laufen soll.

    Beispiel:

    wenn ich einen CALayer sage:
    layer.bounds=CGRectMake(0.0,0,320,568);
    layer.position=CGPointMake(320.0/2.0,568/2.0);

    so wurde dieser layer unter Xcode 5 auf dem iPhone 5, wie auch dem iPhone 6 / Plus immer so angezeigt, dass der gesamte Screen ausgefüllt ist. Bei Xcode 6 geht das nicht mehr. Dieses Beispiel soll nur zur Illustration des Problems dienen. Es ist in diesem Falle natürlich möglich, die screenSize abzufragen und die Bestandteile dort einzusetzen. Aber darum soll es hier nicht gehen. Meine Frage ist: Lässt sich Xcode 6 dazu überreden bei Iphone 6/Plus, wie Xcode 5 auch bei der screenSize die Werte des iPhone 5/s auszugeben.
  • das ist aber so weil Xcode 5 das app so erstellt hat dass es unter iOS 8 gezoomt wird und das ist eben scheiße.
    neu angelegte programme (oder eben solche in die man die entsprechenden files nachgerüstet hat) werden in ihrer korrekten größe erstellt/angezegit.

    normalerweise gibt man nirgends feste größen an weil man ja immer die größen irgendwo her abfragt (superview, window etc).

    dann gibts noch autolayout etc...
  • 322 schrieb:

    Meine Frage ist: Lässt sich Xcode 6 dazu überreden bei Iphone 6/Plus, wie Xcode 5 auch bei der screenSize die Werte des iPhone 5/s auszugeben.

    Das hat erst mal nichts wirklich was mit Xcode zu tun. Xcode 6 legt dir lediglich gleich ein LaunchScreen.xib File mit an, was dazu führt, dass die 6er iPhones das Interface deiner App nicht mehr einfach nur skalieren. Du kannst natürlich das LaunchScreen.xib aus deinem Projekt entfernen, dann bekommst du wieder deine feste Größe, aber das bedeutet, deine App nutzt den größeren Bildschirm der 6er iPhones nicht aus. Oder anders ausgedrückt: du weigerst dich, die neuen iPhones nativ zu unterstützen. ;)
  • ich gebe dir natürlich recht: native Unterstützung ist das, was man will und kommt. Nur einem Kunden ist es schwer begreiflich zu machen, dass eine App nur wegen marginaler Veränderungen im Grunde ein komplettes Redesign benötigt.

    Und Zweiten: Es ist eben auch eine Einstiegshürde, die viele Kunden nicht bereit sind zu nehmen, da es für deren Inhalt aus deren Sicht nicht unbedingt notwendig ist, verschiedene Layouts für verschiedene ScrennSizes anzubieten.

    PS: das schlichte entfernen von LaunchScreen.xib hat leider nicht den gewünschten Erfolg gebracht.
  • Du hast bestimmt ein Product > Clean vergessen oder die App auf dem Simulator nicht gelöscht. ;)

    Aktuell scheint man ja noch Apps bzw. Updates für Apps ohne iPhone 6 (plus) Support in den Store zu bekommen. Dies dürfte jedoch nicht allzu lange anhalten. Von daher sollten sich Deine Kunden schon mal darauf einstellen, dass bei Apps ohne iPhone 6 (plus) Support dann kein Update mehr möglich ist. Da kennt Apple leider keine Gnade.