WKInterfacePicker中如何让图片透明?

How to make images in WKInterfacePicker Transparent?

我有一个设置为序列模式的 WKInterfacePicker。当我在运行时向它添加图像并将其显示在苹果手表上时,图像似乎有黑色背景(而不是透明像素)。图像中有透明像素。这是我在 willActivate 函数中使用的代码:

NSMutableArray *pItems = [[NSMutableArray alloc] initWithCapacity:31];

for(int i=0; i<30; ++i){
    WKPickerItem *item = [[WKPickerItem alloc] init];
    WKImage *img = nil;
    if(i < 10)
        img = [WKImage imageWithImageName:[NSString stringWithFormat:@"safeDial_0%d", i]];
    else
        img = [WKImage imageWithImageName:[NSString stringWithFormat:@"safeDial_%d", i]];

    [item setContentImage:img];
    [pItems addObject:item];
}

[self.pickerSafeLock setItems:[pItems copy]];
[self.pickerSafeLock setSelectedItemIndex:0];
[self.pickerSafeLock focus];

注意:pickerSafeLock 是 WKInterfacePicker

此外,当我在 WKImage 上使用相同的图像时,我发现透明像素工作正常。

有没有办法让WKInterfacePicker中的图片透明?

在尝试了多种方法(包括@DaGaMs 的解决方案)后,我发现了一个相当棘手的问题解决方案。我使用了一个 WKInterfacePicker 和一个关联的 WKInterfaceImage。这是解决问题的方法:

在您的 WatchKit 应用程序的 Storyboard 中,在 WKInterfaceGroup 中添加 WKinterfaceImage、WKInterfaceGroup 和 WKInterfacePicker。

这是它的样子:

这只是为了将 Picker 隐藏在屏幕外,以便我们可以将动画从 Picker 伪造到 WKInterfaceImage。

完成后,在 WKInterfacePicker 的 IBAction 上设置相应的图像,如下所示:

- (IBAction)pickerAction:(NSInteger)value {
    [self.yourWKInteraceImage setImage:imgPickerList[value]];
}

注意:imgPickerList 包含您要设置动画的所有图像(与选择器相同)。