Как получить ширину сегодняшнего расширения в iOS 8/9

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

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

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

iPhone 6 сегодня

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

представление на iPad Air сегодня

Есть ли встроенный метод для захвата ширины сегодняшнего расширения в iOS 8/9?


person Rachel Unthank    schedule 22.11.2016    source источник


Ответы (2)


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

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

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

person dadederk    schedule 24.11.2016

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

person Christopher Pickslay    schedule 23.11.2016
comment
Я сам устанавливаю границы представления (поскольку я не использую раскадровки, поэтому я создаю представление вручную), поэтому мне нужно знать ширину области расширения сегодняшнего дня, прежде чем я смогу ее установить. iOS 10 удовлетворяет этому с помощью метода «widgetMaximumSizeForDisplayMode», но я не могу понять, как получить эту ширину при использовании iOS 8/9. - person Rachel Unthank; 24.11.2016