如何在WKInterfacePicker透明中制作图像?

时间:2015-12-07 21:28:10

标签: ios objective-c apple-watch

我有一个WKInterfacePicker,它被设置为Sequence模式。当我在运行时向其添加图像并将其显示在苹果手表上时,图像似乎具有黑色背景(而不是具有透明像素)。图像中包含透明像素。这是我在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中的图像透明?

1 个答案:

答案 0 :(得分:0)

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

在WatchKit App的Storyboard中,在WKInterfaceGroup中添加WKinterfaceImage,WKInterfaceGroup和WKInterfacePicker。

以下是它的外观:

Overcoming Transparency of WKInterfacePicker

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

执行此操作后,在WKInterfacePicker的IBAction上设置相应的图像如下:

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

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