Симулятор iOS 7 против реального iPhone: необъяснимые различия

Я работаю над исправлением для iOS 7, и у меня возникла проблема. Когда я запускаю свое приложение на реальном устройстве (iPhone 4S iOS 7), экран выглядит иначе, чем когда я запускаю то же приложение на iPhone 3,5 дюйма iOS 7 Simulator. Я пытаюсь понять, почему и в чем причина этого, если кто-то может помочь, было бы здорово!

Первый снимок экрана с симулятора, второй снимок с устройства:

РЕШЕНО: приложение на реальном iPhone имеет базовый SDK 6.0, а приложение, которое находится на симуляторе, имеет базовый SDK 7.0. Итак, я предполагаю, что реальное устройство знало, как компенсировать низкую базу SDK, в отличие от симулятора, который вел себя полностью в среде SDK 7.0, и поэтому он показывал по-другому. Благодарность!

СИМУЛЯТОР:

НАСТОЯЩЕЕ УСТРОЙСТВО:


person Roy K    schedule 19.09.2013    source источник
comment
Посмотрите на свой конструктор интерфейсов. В инспекторах атрибутов есть свойство Расширить края. Попробуйте изменить нижние полоски, чтобы увидеть, выглядит ли оно лучше. Также попробуйте изменить свойство размера на той же вкладке.   -  person UIChris    schedule 19.09.2013
comment
Привет! Я не смог найти эту недвижимость. Но я хочу правильно понять: это означает, что все, что я вижу на своем устройстве, - это реальный вид приложения? а в принципе это свойство только для симулятора?   -  person Roy K    schedule 19.09.2013
comment
iPhone 4S - это 4-дюймовый экран, и ваше приложение будет выглядеть иначе на 3.5. Вкладка, о которой я говорю, является 4-й в правом меню (после того, как вы выберете контроллер представления). Решение вашей проблемы - изменить параметр Размер на 3,5 и изменить то, что вам нужно изменить :)   -  person UIChris    schedule 19.09.2013
comment
Я искренне ценю ваши комментарии и помощь, но, насколько я знаю, у iPhone 4 экран 3,5, а у iPhone 5 экран 4 дюйма. См. Ссылку: Apple iPhones Deatils. Я до сих пор не понимаю, чем симулятор отличается от устройства.   -  person Roy K    schedule 19.09.2013
comment
iPhone 4S - это экран 3.5, и он будет выглядеть по-другому на экране iPhone 5 4   -  person WolfLink    schedule 19.09.2013
comment
Ситуация такова, что я очень запутался, потому что, с одной стороны, симулятор должен дать нам точное представление о том, как приложение будет выглядеть на реальном устройстве. Но, с другой стороны, в моем случае реальное устройство показывает нечто иное, чем симулятор, так что же не так и почему? кто угодно?   -  person Roy K    schedule 19.09.2013
comment
@RoyKronenfeld есть ли лучшее решение? У меня тоже есть эта проблема, и мне было интересно, все ли устройства ведут себя таким образом или будет точка (или есть конкретное устройство), где он будет полностью использовать базовый SDK iOS 7, и он будет вести себя прямо как в симуляторе?   -  person LilDwarf    schedule 26.09.2013


Ответы (3)


Для всех, кто это читает, комментарий Роя «Решенный» выше верен.

Я перешел в Xcode после обновления, и он автоматически обновил мой базовый SDK до последней версии iOS 7.0.

После возврата к «iOS 6.1» и симулятор, и устройство теперь работают так же, как и ожидалось на iOS 7.

Не пытаться украсть гром Роя (который сэкономил мне много часов - спасибо), а просто обобщить другим, как быстро решить проблему.

Ральф

person Ralpharoo    schedule 27.09.2013

В отличие от предлагаемого решения, документация Apple рекомендует установить для Base SDK последнюю версию iOS https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringYourApp/ConfiguringYourApp.html#//apple_ref/doc/uid/TP40012582-CH28-SW37, поэтому должно быть лучшее решение

person Luis    schedule 04.10.2013
comment
Так оно и есть. Если я верну свой проект обратно на последнюю версию iOS 7.0 - это поведение начнется снова. Возможно, это проблема тестирования, но я недостаточно уверен, чтобы выпустить свое приложение в магазин приложений, как предлагает Apple - все очень странно! Если у кого-то есть обновления по этому поводу, это было бы очень интересно. - person Ralpharoo; 12.11.2013

Я тоже столкнулся с такой же проблемой ..

Я решил, добавив ниже код в viewDidLoad method..of view controller.

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;

Надеюсь, это поможет .. Спасибо.

person Vidhyanand    schedule 29.01.2014