Большая часть того, что доступно на iOS, отсутствует (пока) в WatchKit. В частности, некоторые вещи, которые вы хотите сделать, почти невозможны. (Проблеск надежды через мгновение). В частности, вы не можете вращать изображение. Точнее, вы можете повернуть изображение, но вы должны сделать это на телефоне, а затем передать это изображение на часы во время выполнения. Кроме того, вы не можете легко скомпоновать изображения, однако есть способ сделать это.
Одним из способов было бы создать все повернутое составное изображение так, как вы хотите, на телефоне и передать окончательные данные на кнопку, используя [WKInterfaceButton setBackgroundImage:]. К сожалению, вы, скорее всего, обнаружите, что это работает медленно в симуляторе, и, скорее всего, это будет плохо работать на реальных часах. Трудно сказать наверняка, потому что у нас его нет, но это отправляет изображение на лету через Bluetooth. Таким образом, вы не получите плавной анимации или хорошего времени отклика.
Лучший способ — взломать его на часах. Это основано на двух хитростях: во-первых, наложение групп вместе с фоновыми изображениями. Во-вторых, используя -[WKInterfaceImage startAnimatingWithImagesInRange:duration:repeatCount:].
Для первого трюка поместите группу в свой макет, затем поместите в нее другую группу, а затем (возможно) кнопку внутри нее. Затем используйте -[WKInterfaceGroup setBackgroundImage:] и изображения будут объединены вместе. Убедитесь, что вы используете правильную прозрачность и т. д.
Для второго трюка обратитесь к официальной документации — по сути, вам понадобится серия изображений, по одному для каждого возможного значения поворота, как сказал erdekhayser. Теперь это может показаться вопиющим (это так) и, возможно, непрактичным (это не так). Именно так Apple рекомендует создавать спиннеры и тому подобное — по крайней мере, на данный момент. И, да, это может означать создание 360 различных изображений, хотя из-за маленького экрана я советую проходить через каждые 3-5 градусов или около того (никто не сможет заметить разницу).
Надеюсь это поможет.
person
Adam
schedule
24.11.2014
degrees = 360.0 * 19.0 / 100.0
. - person zisoft   schedule 22.11.2014