Как программно изменить тип высоты объекта WKInterfaceObject?
В раскадровке WatchKit, если вы добавляете объект WKInterfaceObject (например, WKInterfaceGroup), у вас есть следующие параметры высоты и ширины:
- Размер по размеру содержимого
- Относительно контейнера (значение и корректировка)
- Фиксированное значение)
В заголовке 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 очень ограничен. В будущих версиях может появиться больше возможностей, о которых просят пользователи.