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

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

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

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

func setHeight(height: CGFloat)

... в документации указано:

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

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

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


person Senseful    schedule 26.03.2015    source источник


Ответы (3)


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

person John Stephen    schedule 28.03.2015

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

  • размер по ширине ()
  • размерToFitHeight()
  • setRelativeWidth (CGFloat, withAdjustment: CGFloat)
  • setRelativeHeight (CGFloat, withAdjustment: CGFloat)

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

person dunqan    schedule 14.09.2016

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

person gagarwal    schedule 26.03.2015