Найти высоту и ширину 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.