1

В настоящее время я пытаюсь создать сегодняшнее расширение, совместимое со старым сегодняшним расширением, а также с новым стилем стиля в iOS 10.Как получить ширину сегодняшнего расширения в iOS 8/9

Я не использую раскадровки, поэтому мне нужно создать и установить высоту и ширину виджета в классе контроллера вида. Это хорошо в iOS 10 - widgetMaximumSizeForDisplayMode можно использовать для захвата ширины и высоты виджета на любом устройстве.

Однако я изо всех сил пытаюсь понять, как это сделать для iOS 8/9 как widgetMaximumSizeForDisplayMode доступен только с iOS 10 и далее. Иногда сегодня ширина расширения просто ширина устройства, как показано ниже:

iPhone 6 today view

Но для других устройств, таких как IPad ширины виджета только определенная ширина на экране.

iPad Air today view

Есть встроенный метод, чтобы захватить ширину сегодня-расширение в прошивке 8/9?

ответ

2

Вы пробовали использовать метод override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) в контроллере вида для сегодняшнего расширения?

Поддерживается от iOS 8 и выше, и вы получите новый размер при поворотах.

https://developer.apple.com/reference/uikit/uicontentcontainer/1621466-viewwilltransitiontosize

0

Ширина всегда одинакова для данного устройства/ориентации - вы не можете установить ее. Но если вам нужно прочитать его, чтобы определить высоту этой ширины, вы можете просто проверить view.bounds.width.

+0

Я устанавливаю точку зрения, ограничивает себя (как я не использую раскадровки так я создаю представление вручную), так что мне нужно знать ширину сегодня области расширения, прежде чем я могу установить его , iOS 10 удовлетворяет этому методу «widgetMaximumSizeForDisplayMode», но я не могу понять, как получить эту ширину при использовании iOS 8/9. –

Смежные вопросы