<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "tvOS: 18.0.0 -",
    "visionOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIUpdateActionPhase/afterCATransactionCommit",
  "metadataVersion" : "0.1.0",
  "role" : "Type Property",
  "symbol" : {
    "kind" : "Type Property",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIUpdateActionPhase(cpy)afterCATransactionCommit"
  },
  "title" : "afterCATransactionCommit"
}
-->

# afterCATransactionCommit

A phase that runs after a Core Animation transaction commit.

```
class var afterCATransactionCommit: UIUpdateActionPhase { get }
```

## Discussion

This phase runs after <doc://com.apple.documentation/documentation/QuartzCore/CATransaction/flush()>. By default, any changes you make to the Core Animation layer tree during this phase or later appear onscreen with the next UI update instead of the current one. However, if you opt in to low-latency event dispatch with [`wantsLowLatencyEventDispatch`](/documentation/UIKit/UIUpdateLink/wantsLowLatencyEventDispatch), any changes you make to the Core Animation layer tree before or during the [`beforeLowLatencyCATransactionCommit`](/documentation/UIKit/UIUpdateActionPhase/beforeLowLatencyCATransactionCommit) phase appear onscreen with the current UI update.

> Important:
> Although you can send the latest Core Animation layer changes to the render server right away by calling <doc://com.apple.documentation/documentation/QuartzCore/CATransaction/commit()> or <doc://com.apple.documentation/documentation/QuartzCore/CATransaction/flush()> manually, doing so isn’t recommended. Calling these methods manually might send unrelated changes to the render server prematurely.

---

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)