<!--
{
  "availability" : [
    "iOS: 2.0.0 -",
    "iPadOS: 2.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.5.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "QuartzCore",
  "identifier" : "/documentation/QuartzCore/CATiledLayer",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Core Animation"
    ],
    "preciseIdentifier" : "c:objc(cs)CATiledLayer"
  },
  "title" : "CATiledLayer"
}
-->

# CATiledLayer

A layer that provides a way to asynchronously provide tiles of the layer’s content, potentially cached at multiple levels of detail.

```
class CATiledLayer
```

## Overview

As more data is required by the renderer, the layer’s [`draw(in:)`](/documentation/QuartzCore/CALayer/draw(in:)) method is called on one or more background threads to supply the drawing operations to fill in one tile of data. The clip bounds and current transformation matrix (CTM) of the drawing context can be used to determine the bounds and resolution of the tile being requested.

Regions of the layer may be invalidated using the [`setNeedsDisplay(_:)`](/documentation/QuartzCore/CALayer/setNeedsDisplay(_:)) method however the update will be asynchronous. While the next display update will most likely not contain the updated content, a future update will.

> Important:
> Do not attempt to directly modify the ``doc://com.apple.quartzcore/documentation/QuartzCore/CALayer/contents`` property of a ``doc://com.apple.quartzcore/documentation/QuartzCore/CATiledLayer`` object. Doing so disables the ability of a tiled layer to asynchronously provide tiled content, effectively turning the layer into a regular ``doc://com.apple.quartzcore/documentation/QuartzCore/CALayer`` object.

## Topics

### Visual Fade

[`fadeDuration()`](/documentation/QuartzCore/CATiledLayer/fadeDuration())

The time, in seconds, that newly added images take to “fade-in” to the rendered representation of the tiled layer.

### Levels of detail

[`levelsOfDetail`](/documentation/QuartzCore/CATiledLayer/levelsOfDetail)

The number of levels of detail maintained by this layer.

[`levelsOfDetailBias`](/documentation/QuartzCore/CATiledLayer/levelsOfDetailBias)

The number of magnified levels of detail for this layer.

### Layer tile size

[`tileSize`](/documentation/QuartzCore/CATiledLayer/tileSize)

The maximum size of each tile used to create the layer’s content.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)