1

我有一个包含 Apple Watch 应用的 iOS 应用。我对解决方案所做的是显示在 iOS 应用程序中绘制并发送到手表应用程序的趋势图(折线图)。我使用 WKInterfaceImage 实例在 Apple Watch 应用程序中显示图形,但它看起来并不清晰。有没有办法为应用程序中的图像启用缩放功能,以便用户可以清晰地缩放和阅读/查看图表中的详细信息。

检查我在手表应用程序中的当前图形图像,

在此处输入图像描述

我不确定我问的事情是否可能,但如果没有,有人可以建议我一些更好的选择来更好地实现这一点。

4

2 回答 2

2

目前没有办法允许用户在 WatchKit SDK 中“缩放”。相反,我建议您以更易于在 Watch 上阅读的尺寸生成图形图像。

于 2015-05-16T00:51:49.407 回答
0

首先,我建议不要在 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 中发生变化。

于 2015-05-19T12:15:24.470 回答