Контроллер интерфейса WatchKit слишком много прокручивается после добавления перехода на следующую страницу

эксперты!

Сегодня начал собирать версию Apple Watch для моего CelebrateMore! приложение и не может решить одну проблему. У меня есть 2 контроллера интерфейса - на основе страниц. Как только я устанавливаю переход на «следующую страницу» с первой на вторую, мой первый интерфейсный контроллер начинает прокручиваться намного больше, чем раньше.

Скриншот из раскадровки: Снимок экрана из раскадровки:

Скриншот из симулятора во время прокрутки:

Проблема с прокруткой

Скриншот из симулятора, если я удаляю переход на следующую страницу и прокручиваю:

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

Уже по полосе прокрутки видно, что много пустого контента, если используется «следующая страница». Есть ли у кого-нибудь идеи, как это решить, как избежать проблемы «длинной прокрутки контента»?


person valdistt    schedule 10.03.2015    source источник
comment
У меня точно такая же проблема!   -  person Ashraf Tawfeeq    schedule 11.03.2015
comment
Я надеюсь, что это ошибка. Кажется, что высота начального контроллера становится смехотворно большой, когда вы добавляете переход на следующую страницу.   -  person reshat2    schedule 12.03.2015


Ответы (3)


Я боролся с одной и той же проблемой в течение нескольких часов, пока не решил на время отказаться от нее и сосредоточиться на заполнении меток фактическими данными во время выполнения. После того, как я добавил некоторый код в основные методы инициализации WKInterfaceController ((void)awakeWithContext:(id)context {} и/или (void)willActivate {} ), эта проблема с прокруткой волшебным образом исчезла. Попробуйте установить текст одной или всех меток в вашем интерфейсе в код одним из двух методов, упомянутых выше, и посмотрите, будет ли устранена проблема с прокруткой:

[self.label setText:@"Some text.."];

Это сработало в моем случае.

person Bogdan Grigorescu    schedule 13.03.2015
comment
У меня даже не было метки на моем контроллере (только одна кнопка), но добавив фиктивный текст внизу кнопки, а затем добавив приведенный выше код, я смог решить проблему. - person SolidSnake4444; 01.04.2015

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

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    //enable correct scroll height
    self.titleLabel.setText("")

    self.loadData()
}
person helkarli    schedule 30.03.2015

Я использовал другой способ обойти это.

Сначала поместите группу в InterfaceController и назначьте ей фиксированную высоту, а затем поместите другие компоненты внутрь группы.

Чтобы группа занимала весь экран, ее высота для 38 мм должна быть установлена ​​примерно на 142 пункта, а для 42 мм — примерно на 165 пунктов. Вы можете использовать знак «плюс» рядом со значением, чтобы ввести эти значения для двух моделей.

person Daniel    schedule 18.04.2015
comment
Или вы можете использовать Relative to Container и установить значение ввода ниже выбора на 1. - person Iulian Onofrei; 05.05.2015
comment
Нет, это не сработало для меня. В этом была ошибка — высота корневого контейнера первого экрана в иерархии на основе страниц каким-то образом была установлена ​​на большое значение, и мне пришлось использовать группу, чтобы задать правильную и фиксированную высоту. Но тогда, может быть, это было исправлено в последней версии, я не пробовал в последнее время. - person Daniel; 05.05.2015
comment
Я понимаю. Но вы уверены, что цифры верны? Эта статья говорит о другом. - person Iulian Onofrei; 05.05.2015
comment
Возможно, это было связано с тем, что в полноэкранном режиме, о котором я упоминал, нет строки состояния сверху. - person Daniel; 08.05.2015