начальная позиция представления таблицы неверна в симуляторе и не совпадает с раскадровкой

Я создал табличное представление в раскадровке, которое выглядит хорошо, но начальная позиция неверна в симуляторе или устройстве. Метка не должна быть в том же положении, что и время. Как я мог это решить??

раскадровка

введите здесь описание изображения

в симуляторе


person Arton    schedule 06.12.2013    source источник
comment
в iOS 7 строка состояния включена в View Controller. Вы хотите сохранить строку состояния или нет?   -  person Raptor    schedule 06.12.2013
comment
Simulated metrics именно так. Имитация. Они полезны для настройки того, как на самом деле будет отображаться представление, чтобы помочь настроить внешний вид в раскадровке, но отображается ли панель навигации или панель вкладок в реальной программе, не имеет значения, выбрали ли вы ее или нет. как смоделированная метрика на раскадровке.   -  person nhgrif    schedule 06.12.2013
comment
Это не табличное представление.   -  person Toseef Khilji    schedule 06.12.2013


Ответы (2)


Смоделированные метрики — это именно то, что нужно. Имитация. Они полезны для настройки того, как на самом деле будет отображаться представление, чтобы помочь настроить внешний вид в раскадровке, но отображается ли панель навигации или панель вкладок в реальной программе, не имеет значения, выбрали ли вы ее или нет. как смоделированная метрика на раскадровке.

В этом случае вы, вероятно, используете ограничения и устанавливаете начало координат y на 0 пикселей ниже представления контейнера. Когда вы используете смоделированные метрики раскадровки, метка размещается сразу под панелью навигации, которую вы имитируете на раскадровке. Но в вашем реальном проекте вы ничего не сделали для включения панели навигации в эту сцену, и ваша метка появляется в верхней части контроллера представления.

Вы можете узнать, как запретить отображение строки состояния... или переместить начало координат y на 20 пикселей вниз (высота строки состояния).


Я могу оказать дополнительную помощь, если вы предоставите более подробную информацию о том, как вы делаете свой макет (автомакет?), и как именно вы хотите, чтобы он выглядел. Но я бы начал с того, что оставил ВСЕ смоделированные показатели на inferred и когда-либо явно изменял смоделированные показатели только после того, как вы написали код для программного добавления/удаления одной из функций, которые вы можете изменить с помощью смоделированных показателей.


Если вы ничего не вынесете из этого ответа, пожалуйста, поймите следующее: выбор элемента в раскрывающемся меню смоделированных показателей изменяет только то, как представление отображается в раскадровке, но не меняет того, что на самом деле будет отображаться в вашем приложении.

person nhgrif    schedule 06.12.2013
comment
Большое спасибо! Я неправильно понял смоделированные показатели. Мое табличное представление содержит 1 статическую ячейку. В верхней части ячейки есть одна метка. Что я хочу сделать, так это сделать ячейку ниже строки состояния. - person Arton; 06.12.2013
comment
Я использовал автомакет и не добавлял ограничений. - person Arton; 06.12.2013
comment
Вам нужна панель навигации или нет? Вы используете автоматическую компоновку с ограничениями или используете постоянные x, y, ширину, высоту? - person nhgrif; 06.12.2013
comment
Мне не нужна панель навигации, но я хочу строку состояния. Я устанавливаю высоту своей ячейки, перетаскивая ее границу вниз. Должен ли я кодировать, чтобы получить строку состояния? - person Arton; 06.12.2013
comment
Строка состояния будет там по умолчанию. Вы должны изменить смоделированную метрику панели навигации на предполагаемую. Теперь перетащите метку точно в нужное место (прямо под строкой состояния на y=20 есть направляющая макета). Запустите симулятор и посмотрите, как это выглядит. Если это все еще не так, вам, возможно, потребуется установить ограничения: developer.apple.com/library/ios/documentation/userexperience/ - person nhgrif; 06.12.2013
comment
Ой, извини. Я сказал что-то не так. Строка состояния есть, но я хочу, чтобы ячейка была под ней. Я изучаю документ, который вы предоставили. Спасибо! - person Arton; 06.12.2013

попробуй это

self.edgesForExtendedLayout = UIRectEdgeNone;

Надеюсь, что это поможет вам.

person aakil nikil    schedule 06.12.2013