Contents

init(named:in:compatibleWith:)

Creates an image object using the named image asset that’s compatible with the specified trait collection.

Declaration

init?(named name: String, in bundle: Bundle?, compatibleWith traitCollection: UITraitCollection?)

Parameters

  • name:

    The name of the image asset or file.

  • bundle:

    The bundle containing the image file or asset catalog. Specify nil to search the app’s main bundle.

  • traitCollection:

    The traits associated with the intended environment for the image. Use this parameter to ensure that the system loads the correct variant of the image. If you specify nil, this method uses the traits associated with the main screen.

Mentioned in

Return Value

The image object that best matches the desired traits with the given name, or nil if no suitable image was found.

Discussion

When searching the asset catalog, this method prefers an asset containing a symbol image over an asset with the same name containing a bitmap image. Because the system supports symbol images in iOS 13 and later, you may include both types of assets in the same asset catalog. The system automatically falls back to the bitmap image on earlier versions of iOS.

You can’t use this method to load system symbol images; use the init(systemName:compatibleWith:) method instead.

This method checks the system caches for an image object with the name you specify, and returns the variant of that image that best matches the trait collection you specify. If a matching image object isn’t in the cache, this method creates the image from an available asset catalog or loads the image from disk.

The system may purge cached image data at any time to free up memory. Purging occurs only for unused images that are in the cache.

In iOS 9 and later, this method is thread safe.

See Also

Loading and caching images