AsyncDisplayKit is now Texture! LEARN MORE



ASDisplayNodes may Implement Placeholders

Any ASDisplayNode subclass may implement the -placeholderImage method to provide a placeholder that covers content until a node’s contents are finished displaying. To use placeholders, set .placeholderEnabled = YES and optionally set a .placeholderFadeDuration;

For image drawing, use the node’s .calculatedSize property.

The `-placeholderImage` function may be called on a background thread, so it is important that this function is thread safe. Note that `-[UIImage imageNamed:]` is not thread safe when using image assets. Instead use `-[UIImage imageWithContentsOfFile:]`.

An ideal resource for creating placeholder images, including rounded rect solid colored ones or simple square corner ones is the UIImage+ASConvenience category methods in Texture.

See our ancient Placeholders sample app to see this concept, first invented by the Facebook Paper team, in action.


Hear Scott Goodson explain placeholders, .neverShowPlaceholders and why UIKit doesn’t have them.

ASNetworkImageNode also have Default Images

In addition to placeholders, ASNetworkImageNodes also have a .defaultImage property. While placeholders are meant to be transient, default images will persist if the image node’s .URL property is nil or if the URL fails to load.

We suggest using default images for avatars, while using placeholder images for photos.

Edit on GitHub