I have upgraded my current target to iPad and made a universal app and the time for adjusting my iphone app to ipad would decrease significantly if there is an answer for this question.
By this time everybody know that if you have a image called "football.png" and want support for Retina Display you should double the size of the image and call it "[email protected]".
My question is if there is something for iPad like *football@iPad_which_is_another_size.png*?
If there isn't a way to do this, do I have to connect every image to an IBOutlet and set the frame programmatically?
In iOS 4.0 and later, it is possible to mark individual resource files as usable only on a specific type of device To associate a resource file with a particular device, you add a custom modifier string to its filename. The inclusion of this modifier string yields filenames with the following format:
<basename><device>.<filename_extension>
To load the iPad specific resources you should use ~ipad
. Example: create the image named AwesomeImage~ipad.png
and load with [UIImage imageNamed:@"AwesomeImage.png"]
like you do for retina display image.
For more information: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html At "iOS Supports Device-Specific Resources" section.
I don't think there's a way to get the OS to pick it automatically for you, like there is for the Retina display. But, you could create a convenience method to return your filenames for you like:
-(NSString*) myImageFilename:(NSString*)baseName withExtension:(NSString*)ext {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return [NSString stringWithFormat:"%@@iPadSize.%@"];
} else {
return [NSString stringWithFormat:"%@.%@"];
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With