Как программно изменить тип высоты объекта WKInterfaceObject?

В раскадровке WatchKit, если вы добавляете объект WKInterfaceObject (например, WKInterfaceGroup), у вас есть следующие параметры высоты и ширины:

  1. Размер по размеру содержимого
  2. Относительно контейнера (значение и корректировка)
  3. Фиксированное значение)

В заголовке WKInterfaceObject есть только одно свойство, связанное с height:

func setHeight(height: CGFloat)

... в документации говорится:

Устанавливает абсолютную высоту (в точках) объекта.

Похоже, это соответствует варианту № 3 (фиксированное значение).

Как выбрать любой из двух других вариантов программным способом (например, что если я хочу изменить размер на "Относительно контейнера")?

3 ответа

Решение

Вы не можете изменить высоту на что-либо кроме фиксированных значений в настоящее время, поэтому вместо этого создайте в раскадровке несколько объектов, каждый из которых настроен на нужные вам параметры высоты, и при необходимости скройте / покажите их, чтобы получить нужный эффект. Поскольку все контейнеры в WatchKit основаны на стеке, скрытые объекты не будут занимать места.

Начиная с WatchOS 2.0 вы можете использовать:

  • sizeToFitWidth ()
  • sizeToFitHeight ()
  • setRelativeWidth (CGFloat, withAdjustment: CGFloat)
  • setRelativeHeight (CGFloat, withAdjustment: CGFloat)

https://developer.apple.com/reference/watchkit/wkinterfaceobject

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

Другие вопросы по тегам