mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00

git-subtree-dir: submodules/AsyncDisplayKit git-subtree-mainline: d06f423e0ed3df1fed9bd10d79ee312a9179b632 git-subtree-split: 02bedc12816e251ad71777f9d2578329b6d2bef6
30 lines
1.1 KiB
Markdown
Executable File
30 lines
1.1 KiB
Markdown
Executable File
---
|
|
title: Layer Backing
|
|
layout: docs
|
|
permalink: /docs/layer-backing.html
|
|
prevPage: accessibility.html
|
|
nextPage: subtree-rasterization.html
|
|
---
|
|
|
|
In some cases, you can substantially improve your app's performance by using layers instead of views. **We recommend enabling layer-backing in any custom node that doesn't need touch handling**.
|
|
|
|
With UIKit, manually converting view-based code to layers is laborious due to the difference in APIs. Worse, if at some point you need to enable touch handling or other view-specific functionality, you have to manually convert everything back (and risk regressions!).
|
|
|
|
With all Texture nodes, converting an entire subtree from views to layers is as simple as:
|
|
|
|
<div class = "highlight-group">
|
|
<span class="language-toggle"><a data-lang="swift" class="swiftButton">Swift</a><a data-lang="objective-c" class = "active objcButton">Objective-C</a></span>
|
|
<div class = "code">
|
|
<pre lang="objc" class="objcCode">
|
|
rootNode.isLayerBacked = YES;
|
|
</pre>
|
|
<pre lang="swift" class = "swiftCode hidden">
|
|
rootNode.isLayerBacked = true
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
...and if you need to go back, it's as simple as deleting one line.
|
|
|
|
|