我有一个包含 Apple Watch 应用的 iOS 应用。我对解决方案所做的是显示在 iOS 应用程序中绘制并发送到手表应用程序的趋势图(折线图)。我使用 WKInterfaceImage 实例在 Apple Watch 应用程序中显示图形,但它看起来并不清晰。有没有办法为应用程序中的图像启用缩放功能,以便用户可以清晰地缩放和阅读/查看图表中的详细信息。
检查我在手表应用程序中的当前图形图像,
我不确定我问的事情是否可能,但如果没有,有人可以建议我一些更好的选择来更好地实现这一点。
我有一个包含 Apple Watch 应用的 iOS 应用。我对解决方案所做的是显示在 iOS 应用程序中绘制并发送到手表应用程序的趋势图(折线图)。我使用 WKInterfaceImage 实例在 Apple Watch 应用程序中显示图形,但它看起来并不清晰。有没有办法为应用程序中的图像启用缩放功能,以便用户可以清晰地缩放和阅读/查看图表中的详细信息。
检查我在手表应用程序中的当前图形图像,
我不确定我问的事情是否可能,但如果没有,有人可以建议我一些更好的选择来更好地实现这一点。
目前没有办法允许用户在 WatchKit SDK 中“缩放”。相反,我建议您以更易于在 Watch 上阅读的尺寸生成图形图像。
首先,我建议不要在 iOS 应用程序中生成 UIImage 并将其发送到 Watch Extension,因为发送图像(即。NSData
)比仅发送图形点的坐标要多得多。
为了以清晰的方式绘制图形,我建议创建一个 CGContext ,使用UIGraphicsBeginImageContextWithOptions
的大小与您从 的contentFrame
属性WKInterfaceController
和比例为 2 完全相同,因为 Watch 显示始终是 Retina。看这个例子:
CGSize size = self.contentFrame.size;
if (size.width > 150)
size.height = 99; // 42mm
else
size.height = 87; // 38mm
[self.graphImage setHeight:size.height];
DLog(@"drawing graph into size %@", NSStringFromCGSize(size));
UIGraphicsBeginImageContextWithOptions(size, NO, 2);
[graph drawRect:CGRectMake(0, 0, size.width, size.height)]; // draw something
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self.graphImage setImage:image];
我正在使用此代码一目了然,因此我需要根据一目了然的模板具有特定的高度。我正在WKInterfaceImage
手动设置高度以确保它具有与 UIImage 相同的大小,以避免缩放并因此抖动。这似乎可行,但由于固定点数,它有点脏。
请注意,42 毫米手表的contentFrame
宽度为 156 磅,而 38 毫米手表的宽度为 136 磅,因此您最好从手表中获取这些宽度contentFrame
,以防它在未来的 WatchOS 中发生变化。