Charts 如何在Apple Watch中启用图像缩放

Charts 如何在Apple Watch中启用图像缩放,charts,zooming,apple-watch,ios8.3,wkinterfaceimage,Charts,Zooming,Apple Watch,Ios8.3,Wkinterfaceimage,我有一个iOS应用程序,包括Apple Watch应用程序。我对这个解决方案所做的是显示一个趋势图(折线图),它在iOS应用程序中绘制并发送到watch应用程序。我使用WKInterfaceImage实例在Apple Watch应用程序中显示图形,但它看起来不清晰。是否有一种方法可以在应用程序中启用图像缩放,以便用户可以缩放并清晰地阅读/查看图表中的详细信息 检查我在watch应用程序中的当前图形图像 我不确定我所问的是否可行,但如果不行,有人能给我建议一些更好的选项来更好地实现这一点。目前无

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

检查我在watch应用程序中的当前图形图像


我不确定我所问的是否可行,但如果不行,有人能给我建议一些更好的选项来更好地实现这一点。

目前无法允许用户在WatchKit SDK中“缩放”。相反,我建议您以更易于在手表上读取的大小生成图形图像。

首先,我建议不要在iOS应用程序中生成UIImage并将其发送到手表扩展,因为发送图像(即
NSData
)比仅发送图形点的坐标要多得多

为了清晰地绘制图形,我建议使用
UIGraphicsBeginImageContextWithOptions
创建一个CGContext,其大小与您从
WKInterfaceController
contentFrame
属性获得的大小完全相同,并且比例为2,因为手表显示始终是视网膜。请参见此示例:

    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相同,从而避免缩放和抖动。 这似乎是可行的,但它有点脏,因为定点数字

请注意,42mm手表的
contentFrame
宽度为156点,而38mm手表的
contentFrame
宽度为136点,因此您最好从
contentFrame
中选取这些宽度,以防在未来的手表中发生变化