Найти высоту и ширину WKInterfaceImage

Я хочу программно визуализировать UIImage а затем отобразить его на Apple Watch в WKInterfaceImage, какую высоту и ширину я установил в "Относительно контейнера" (чтобы он в основном занимал все пространство экрана). Как я могу получить WKInterfaceImageширина и высота? Насколько я вижу, нет frame-, border- Одер layer-свойство я могу получить доступ из кода моего расширения. Итак, как правильно получить эту информацию?

Как ни странно, я обнаружил, что есть методы setWidth и setHeight, но я не могу найти соответствующие методы получения.

В конце дня я в основном ищу Часовой комплект, эквивалентный этому:

@IBOutlet weak var imageView: UIImageView!
//...
var width = imageView.frame.width
var height = imageView.frame.height

2 ответа

Решение

К сожалению, вы просто не можете установить ширину и высоту изображения программно. Установите режим изображения на размер, чтобы соответствовать содержимому, а также то же самое для представления контейнера. Это изменит себя, чтобы соответствовать содержанию.

Цитирование только доступных атрибутов из ссылки на классвведите описание изображения здесь

Это очень распространенное заблуждение с WatchKit.

Вы не можете запрашивать данные во время выполнения таким способом. Причина в том, что Apple не хочет, чтобы вы пинговали Часы каждый раз, когда вам нужно прочитать значение. Они хотят максимально продлить срок службы батареи. Вместо этого вам нужно "знать", что ширина и высота WKInterfaceImage, Вы определили это в раскадровке, так что вы точно знаете, что это такое. Xscope может быть очень полезен для точного определения размера. Как только вы знаете размер, вам нужно сохранить этот размер в вашем WKInterfaceController так что у вас есть данные во время выполнения.

class ImageInterfaceController : WKInterfaceController {
    let imageSize38mm = CGSize(width: 100, height: 100)
    let imageSize42mm = CGSize(width: 120, height: 120)
}

Надеюсь, это поможет пролить некоторый свет на тот факт, что вы не можете запрашивать макет и размер информации во время выполнения так же, как в приложении для iOS.

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