Images on apple watch

2020-03-04 07:53发布

问题:

I ran into a problem yesterday when my application was rejected. Apparently the images are not being displayed on the actual Apple Watch, however they are being displayed in the simulator. I even tried resetting the simulator and can't replicate the problem that occurred for the apple employee. So I am just wondering what the correct way to add/display images on the apple watch is, such so that they will be displayed properly on the actual hard device?

Code:

.h

@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageHeliLeft;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageHeliRight;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageHeliCenter;

@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsTL;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsTM;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsTR;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsML;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsMM;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsMR;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsBL;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsBM;
@property (strong, nonatomic) IBOutlet WKInterfaceImage *imageObsBR;

.m When I actually set an image programmatically

[self.imageHeliLeft setImageNamed:@"helicopter_1"];

Other wise I used the interface builder to set the image

回答1:

Here is the answer. I cannot disclose why I know this, but this is what you need to do.

  1. Remove all images from your Watch App target.
  2. Added images to an image asset file that is in your Watch App target.
  3. Reference the images by the name in the asset file.

If you can see the images in the simulator and they are not in your Watch App target and they are in an asset file then they will work for the reviewer.



回答2:

As of Xcode 6.3, iOS 8.3:

Leave off the ".png" part of the image name. It will look strange in the storyboard, showing a blue "?", instead of the image thumbnail, but will work on both the simulator and watch. Same goes for specifying PNGs for Context Menus and programmatically specifying animation.



回答3:

If you're setting the images in your extension code, you should add all the images to the extension target too.



回答4:

Verify the filenames are correct and the images are placed in the correct target's asset library.

WatchKit Images

It is recommended that you place image resource files in the bundle of your WatchKit app (not in your WatchKit extension’s bundle). Placing them in the WatchKit app bundle lets you use the setImageNamed: method of this class to specify the animated image. Setting them using that method offers better performance by eliminating the need to transfer the images from the user’s iPhone to the Apple Watch. The other methods for setting an image must wirelessly send the UIImage object or image data that you provide to Apple Watch.