<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Node Class Reference</title>
    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
    <meta charset='utf-8'>
    <script src="../js/jquery.min.js" defer></script>
    <script src="../js/jazzy.js" defer></script>
    
  </head>
  <body>
    <a name="//apple_ref/swift/Class/Node" class="dashAnchor"></a>
    <a title="Node Class Reference"></a>
    <header>
      <div class="content-wrapper">
        <p><a href="../index.html">Katana Docs</a> (99% documented)</p>
        <p class="header-right"><a href="https://github.com/BendingSpoons/katana-swift"><img src="../img/gh.png"/>View on GitHub</a></p>
      </div>
    </header>
    <div class="content-wrapper">
      <p id="breadcrumbs">
        <a href="../index.html">Katana Reference</a>
        <img id="carat" src="../img/carat.png" />
        Node Class Reference
      </p>
    </div>
    <div class="content-wrapper">
      <nav class="sidebar">
        <ul class="nav-groups">
          <li class="nav-group-name">
            <a href="../Classes.html">Classes</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Classes/EmptySideEffectDependencyContainer.html">EmptySideEffectDependencyContainer</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/Node.html">Node</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/PlasticNode.html">PlasticNode</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/PlasticView.html">PlasticView</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/Renderer.html">Renderer</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/StateMockProvider.html">StateMockProvider</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/Store.html">Store</a>
              </li>
              <li class="nav-group-task">
                <a href="../Classes/ViewsContainer.html">ViewsContainer</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Enums.html">Enums</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Enums/AnimationType.html">AnimationType</a>
              </li>
              <li class="nav-group-task">
                <a href="../Enums/AsyncActionState.html">AsyncActionState</a>
              </li>
              <li class="nav-group-task">
                <a href="../Enums.html#/s:O6Katana9EmptyKeys">EmptyKeys</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Extensions.html">Extensions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Extensions/Array.html">Array</a>
              </li>
              <li class="nav-group-task">
                <a href="../Extensions/CGSize.html">CGSize</a>
              </li>
              <li class="nav-group-task">
                <a href="../Extensions/UIView.html">UIView</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Protocols.html">Protocols</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Protocols/Action.html">Action</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/ActionWithSideEffect.html">ActionWithSideEffect</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyAsyncAction.html">AnyAsyncAction</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyConnectedNodeDescription.html">AnyConnectedNodeDescription</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyNode.html">AnyNode</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyNodeDescription.html">AnyNodeDescription</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyNodeDescriptionProps.html">AnyNodeDescriptionProps</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyNodeDescriptionWithChildren.html">AnyNodeDescriptionWithChildren</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyNodeDescriptionWithRefProps.html">AnyNodeDescriptionWithRefProps</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyPlasticNodeDescription.html">AnyPlasticNodeDescription</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyPlatformNativeViewWithRef.html">AnyPlatformNativeViewWithRef</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AnyStore.html">AnyStore</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/AsyncAction.html">AsyncAction</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/Childrenable.html">Childrenable</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/ConnectedNodeDescription.html">ConnectedNodeDescription</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/LinkeableAction.html">LinkeableAction</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/NativeViewRef.html">NativeViewRef</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/NativeViewWithRef.html">NativeViewWithRef</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/NodeDescription.html">NodeDescription</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/NodeDescriptionProps.html">NodeDescriptionProps</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/NodeDescriptionState.html">NodeDescriptionState</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/NodeDescriptionWithChildren.html">NodeDescriptionWithChildren</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols.html#/s:P6Katana22NodeDescriptionWithRef">NodeDescriptionWithRef</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/NodeDescriptionWithRefProps.html">NodeDescriptionWithRefProps</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/PlasticNodeDescription.html">PlasticNodeDescription</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/PlasticReferenceSizeable.html">PlasticReferenceSizeable</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/PlatformNativeView.html">PlatformNativeView</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/SideEffectDependencyContainer.html">SideEffectDependencyContainer</a>
              </li>
              <li class="nav-group-task">
                <a href="../Protocols/State.html">State</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Structs.html">Structs</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Structs/ActionLinker.html">ActionLinker</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/ActionLinks.html">ActionLinks</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/Anchor.html">Anchor</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/Anchor/Kind.html">– Kind</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/Animation.html">Animation</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/AnimationContainer.html">AnimationContainer</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/AnimationOptions.html">AnimationOptions</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/AnimationProps.html">AnimationProps</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/ChildrenAnimations.html">ChildrenAnimations</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/EdgeInsets.html">EdgeInsets</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/EmptyProps.html">EmptyProps</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/EmptyState.html">EmptyState</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/Size.html">Size</a>
              </li>
              <li class="nav-group-task">
                <a href="../Structs/Value.html">Value</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Typealiases.html">Typealiases</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Typealiases.html#/s:6Katana25AnimationPropsTransformer">AnimationPropsTransformer</a>
              </li>
              <li class="nav-group-task">
                <a href="../Typealiases.html#/s:6Katana21AnyRefCallbackClosure">AnyRefCallbackClosure</a>
              </li>
              <li class="nav-group-task">
                <a href="../Typealiases.html#/s:6Katana20NodeUpdateCompletion">NodeUpdateCompletion</a>
              </li>
              <li class="nav-group-task">
                <a href="../Typealiases.html#/s:6Katana18RefCallbackClosure">RefCallbackClosure</a>
              </li>
              <li class="nav-group-task">
                <a href="../Typealiases.html#/s:6Katana13StoreDispatch">StoreDispatch</a>
              </li>
              <li class="nav-group-task">
                <a href="../Typealiases.html#/s:6Katana13StoreListener">StoreListener</a>
              </li>
              <li class="nav-group-task">
                <a href="../Typealiases.html#/s:6Katana15StoreMiddleware">StoreMiddleware</a>
              </li>
              <li class="nav-group-task">
                <a href="../Typealiases.html#/s:6Katana16StoreUnsubscribe">StoreUnsubscribe</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="../Associated Types.html">Associated Types</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="../Associated Types.html#/s:P6Katana27NodeDescriptionWithChildren9PropsType">PropsType</a>
              </li>
            </ul>
          </li>
        </ul>
      </nav>
      <article class="main-content">
        <section>
          <section class="section">
            <h1>Node</h1>
              <div class="declaration">
                <div class="language">
                  <pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Node</span><span class="o">&lt;</span><span class="kt">Description</span><span class="p">:</span> <span class="kt"><a href="../Protocols/NodeDescription.html">NodeDescription</a></span><span class="o">&gt;</span></code></pre>

                </div>
              </div>
            <p>Katana works by representing the UI as a tree.
Beside the tree managed by UIKit/AppKit with UIView/NSView (or subclasses) instances through PlatformNativeViews,
Katana holds a tree of instances of <code>Node</code>. The tree is composed as follows:</p>

<ul>
<li><p>each node of the tree is an instance of PlatformNativeView (baked by UIKit/AppKit or subclasses);</p></li>
<li><p>the edges between nodes represent the parent/children (or view/subviews) relation.</p></li>
</ul>

<p>Each <code>Node</code> instance is characterized by a description (which is an implementation of <code><a href="../Protocols/NodeDescription.html">NodeDescription</a></code>).
Since descriptions are stateless, the <code>Node</code> also holds properties and state. It is also in charge of managing the lifecycle
of the UI and in particular to invoke the methods <code>childrenDescriptions</code> and
<code>applyPropsToNativeView</code> of <code><a href="../Protocols/NodeDescription.html">NodeDescription</a></code> when needed.</p>

<p>In general this class is never used during the development of an application. Developers usually work with <code><a href="../Protocols/NodeDescription.html">NodeDescription</a></code>.</p>

<p><a href='#managed-children' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='managed-children'>Managed Children</h2></p>

<p>Most of the time, <code>Node</code> is able to generate and handle its children automatically by using the description methods.</p>

<p>That being said, there are cases where this is not possible
(e.g., in a table, when you need to generate and handle the nodes contained in the cells).
In order to maintain an unique tree to represent the UI, we ask to handle these
cases manually by invoking two methods: <code>addManagedChild(with:in:)</code> and <code>removeManagedChild(node:)</code>.</p>

<p>Having a single tree is important for several reasons.
For example we may want to run automatic tests on the tree and verify some conditions (e.g., there is a button).</p>

<p>Managed children are added to act as a workaround of a current limitation of Katana.
We definitively want to remove this limitation and automate the management of the children in all the cases.</p>

          </section>
          <section class="section task-group-section">
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:vC6Katana4Node8childrenGSQGSaPS_7AnyNode___"></a>
                    <a name="//apple_ref/swift/Property/children" class="dashAnchor"></a>
                    <a class="token" href="#/s:vC6Katana4Node8childrenGSQGSaPS_7AnyNode___">children</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The children of the node</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">fileprivate</span><span class="p">(</span><span class="k">set</span><span class="p">)</span> <span class="k">var</span> <span class="nv">children</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Protocols/AnyNode.html">AnyNode</a></span><span class="p">]</span><span class="o">!</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L49">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:vC6Katana4Node5statewx9StateType"></a>
                    <a name="//apple_ref/swift/Property/state" class="dashAnchor"></a>
                    <a class="token" href="#/s:vC6Katana4Node5statewx9StateType">state</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The current state of the node</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">fileprivate</span><span class="p">(</span><span class="k">set</span><span class="p">)</span> <span class="k">var</span> <span class="nv">state</span><span class="p">:</span> <span class="kt">Description</span><span class="o">.</span><span class="kt">StateType</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L52">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:vC6Katana4Node9containerGSqPS_18PlatformNativeView__"></a>
                    <a name="//apple_ref/swift/Property/container" class="dashAnchor"></a>
                    <a class="token" href="#/s:vC6Katana4Node9containerGSqPS_18PlatformNativeView__">container</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The container in which the node will be drawn</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">container</span><span class="p">:</span> <span class="kt"><a href="../Protocols/PlatformNativeView.html">PlatformNativeView</a></span><span class="p">?</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L55">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:vC6Katana4Node6parentXwGSqPS_7AnyNode__"></a>
                    <a name="//apple_ref/swift/Property/parent" class="dashAnchor"></a>
                    <a class="token" href="#/s:vC6Katana4Node6parentXwGSqPS_7AnyNode__">parent</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The parent of the node.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="nf">fileprivate</span><span class="p">(</span><span class="k">set</span><span class="p">)</span> <span class="k">weak</span> <span class="k">var</span> <span class="nv">parent</span><span class="p">:</span> <span class="kt"><a href="../Protocols/AnyNode.html">AnyNode</a></span><span class="p">?</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L67">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:vC6Katana4Node15managedChildrenGSaPS_7AnyNode__"></a>
                    <a name="//apple_ref/swift/Property/managedChildren" class="dashAnchor"></a>
                    <a class="token" href="#/s:vC6Katana4Node15managedChildrenGSaPS_7AnyNode__">managedChildren</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The array of managed children of the node</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">managedChildren</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Protocols/AnyNode.html">AnyNode</a></span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L82">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:FC6Katana4NodecFT11descriptionx6parentPS_7AnyNode__GS0_x_"></a>
                    <a name="//apple_ref/swift/Method/init(description:parent:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:FC6Katana4NodecFT11descriptionx6parentPS_7AnyNode__GS0_x_">init(description:parent:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Creates an instance of node.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">description</span><span class="p">:</span> <span class="kt">Description</span><span class="p">,</span> <span class="nv">parent</span><span class="p">:</span> <span class="kt"><a href="../Protocols/AnyNode.html">AnyNode</a></span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>description</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The description to associate with the node</p>

                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>parent</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The parent of the node</p>

                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                      <div>
                        <h4>Return Value</h4>
                        <p>an instance of <code>Node</code> with the given parameters</p>

                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L91-L93">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:FC6Katana4NodecFT11descriptionx8rendererCS_8Renderer_GS0_x_"></a>
                    <a name="//apple_ref/swift/Method/init(description:renderer:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:FC6Katana4NodecFT11descriptionx8rendererCS_8Renderer_GS0_x_">init(description:renderer:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Creates an instance of node</p>

<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>the <code><a href="../Classes/Node.html#/s:vC6Katana4Node6parentXwGSqPS_7AnyNode__">parent</a></code> parameter will be nil</p>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">description</span><span class="p">:</span> <span class="kt">Description</span><span class="p">,</span> <span class="nv">renderer</span><span class="p">:</span> <span class="kt"><a href="../Classes/Renderer.html">Renderer</a></span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>description</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The description to associate with the node</p>

                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>renderer</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The renderer of the node. The node will be managed by the renderer as a root node</p>

                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                      <div>
                        <h4>Return Value</h4>
                        <p>an instance of <code>Node</code> with the given parameters</p>

                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L104-L106">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:FC6Katana4Node39processedChildrenDescriptionsBeforeDrawFGSaPS_18AnyNodeDescription__GSaPS1___"></a>
                    <a name="//apple_ref/swift/Method/processedChildrenDescriptionsBeforeDraw(_:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:FC6Katana4Node39processedChildrenDescriptionsBeforeDrawFGSaPS_18AnyNodeDescription__GSaPS1___">processedChildrenDescriptionsBeforeDraw(_:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>This method is invoked during the update of the UI, after the invocation of <code>childrenDescriptions</code> of the description
associated with the node and before the process of updating the UI begins.</p>

<p>This method is basically a customization point for subclasses to process and edit the children
descriptions before they are actually used.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">processedChildrenDescriptionsBeforeDraw</span><span class="p">(</span><span class="n">_</span> <span class="nv">children</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Protocols/AnyNodeDescription.html">AnyNodeDescription</a></span><span class="p">])</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt"><a href="../Protocols/AnyNodeDescription.html">AnyNodeDescription</a></span><span class="p">]</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>children</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The children to process</p>

                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                      <div>
                        <h4>Return Value</h4>
                        <p>the processed children</p>

                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L167-L170">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:vC6Katana4Node14anyDescriptionPS_18AnyNodeDescription_"></a>
                    <a name="//apple_ref/swift/Property/anyDescription" class="dashAnchor"></a>
                    <a class="token" href="#/s:vC6Katana4Node14anyDescriptionPS_18AnyNodeDescription_">anyDescription</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Implementation of the AnyNode protocol.</p>

<div class="aside aside-see-also">
    <p class="aside-title">See also</p>
    <code><a href="../Protocols/AnyNode.html">AnyNode</a></code>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">anyDescription</span><span class="p">:</span> <span class="kt"><a href="../Protocols/AnyNodeDescription.html">AnyNodeDescription</a></span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node+AnyNode.swift#L17-L19">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:vC6Katana4Node8anyStateP_"></a>
                    <a name="//apple_ref/swift/Property/anyState" class="dashAnchor"></a>
                    <a class="token" href="#/s:vC6Katana4Node8anyStateP_">anyState</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Implementation of the AnyNode protocol.</p>

<div class="aside aside-see-also">
    <p class="aside-title">See also</p>
    <code><a href="../Protocols/AnyNode.html">AnyNode</a></code>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">anyState</span><span class="p">:</span> <span class="kt">Any</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node+AnyNode.swift#L26-L28">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:FC6Katana4Node6updateFT4withPS_18AnyNodeDescription__T_"></a>
                    <a name="//apple_ref/swift/Method/update(with:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:FC6Katana4Node6updateFT4withPS_18AnyNodeDescription__T_">update(with:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Implementation of the AnyNode protocol.</p>

<div class="aside aside-see-also">
    <p class="aside-title">See also</p>
    <code><a href="../Protocols/AnyNode.html">AnyNode</a></code>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">update</span><span class="p">(</span><span class="n">with</span> <span class="nv">description</span><span class="p">:</span> <span class="kt"><a href="../Protocols/AnyNodeDescription.html">AnyNodeDescription</a></span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node+AnyNode.swift#L35-L37">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:FC6Katana4Node6updateFT4withPS_18AnyNodeDescription_9animationVS_18AnimationContainer10completionGSqFT_T___T_"></a>
                    <a name="//apple_ref/swift/Method/update(with:animation:completion:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:FC6Katana4Node6updateFT4withPS_18AnyNodeDescription_9animationVS_18AnimationContainer10completionGSqFT_T___T_">update(with:animation:completion:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Implementation of the AnyNode protocol.</p>

<div class="aside aside-see-also">
    <p class="aside-title">See also</p>
    <code><a href="../Protocols/AnyNode.html">AnyNode</a></code>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">update</span><span class="p">(</span><span class="n">with</span> <span class="nv">description</span><span class="p">:</span> <span class="kt"><a href="../Protocols/AnyNodeDescription.html">AnyNodeDescription</a></span><span class="p">,</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Structs/AnimationContainer.html">AnimationContainer</a></span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:6Katana20NodeUpdateCompletion">NodeUpdateCompletion</a></span><span class="p">?)</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node+AnyNode.swift#L44-L56">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:FC6Katana4Node11forceReloadFT_T_"></a>
                    <a name="//apple_ref/swift/Method/forceReload()" class="dashAnchor"></a>
                    <a class="token" href="#/s:FC6Katana4Node11forceReloadFT_T_">forceReload()</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Implementation of the AnyNode protocol.</p>

<div class="aside aside-see-also">
    <p class="aside-title">See also</p>
    <code><a href="../Protocols/AnyNode.html">AnyNode</a></code>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">forceReload</span><span class="p">()</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node+AnyNode.swift#L63-L65">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:FC6Katana4Node15addManagedChildFT4withPS_18AnyNodeDescription_2inPS_18PlatformNativeView__PS_7AnyNode_"></a>
                    <a name="//apple_ref/swift/Method/addManagedChild(with:in:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:FC6Katana4Node15addManagedChildFT4withPS_18AnyNodeDescription_2inPS_18PlatformNativeView__PS_7AnyNode_">addManagedChild(with:in:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Add a managed child to the node</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">addManagedChild</span><span class="p">(</span><span class="n">with</span> <span class="nv">description</span><span class="p">:</span> <span class="kt"><a href="../Protocols/AnyNodeDescription.html">AnyNodeDescription</a></span><span class="p">,</span> <span class="k">in</span> <span class="nv">container</span><span class="p">:</span> <span class="kt"><a href="../Protocols/PlatformNativeView.html">PlatformNativeView</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt"><a href="../Protocols/AnyNode.html">AnyNode</a></span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>description</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>the description that will characterize the node that will be added</p>

                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>container</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>the container in which the new node will be drawn</p>

                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                      <div>
                        <h4>Return Value</h4>
                        <p>the node that has been created. The node will have the current node as parent</p>

                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L321-L326">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:FC6Katana4Node18removeManagedChildFT4nodePS_7AnyNode__T_"></a>
                    <a name="//apple_ref/swift/Method/removeManagedChild(node:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:FC6Katana4Node18removeManagedChildFT4nodePS_7AnyNode__T_">removeManagedChild(node:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Removes a managed child from the node. For more information about managed children see the <code>Node</code> class</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">removeManagedChild</span><span class="p">(</span><span class="nv">node</span><span class="p">:</span> <span class="kt"><a href="../Protocols/AnyNode.html">AnyNode</a></span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>node</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>the node to remove</p>

                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L333-L336">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:vC6Katana4Node8rendererGSqCS_8Renderer_"></a>
                    <a name="//apple_ref/swift/Property/renderer" class="dashAnchor"></a>
                    <a class="token" href="#/s:vC6Katana4Node8rendererGSqCS_8Renderer_">renderer</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The renderer of the node. This is a computed variable that traverses the tree up to the root node and returns root.renderer</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">renderer</span><span class="p">:</span> <span class="kt"><a href="../Classes/Renderer.html">Renderer</a></span><span class="p">?</span></code></pre>

                        </div>
                      </div>
                      <div class="slightly-smaller">
                        <a href="https://github.com/BendingSpoons/katana-swift/tree/0.8.10/Katana/Core/Node/Node.swift#L699-L702">Show on GitHub</a>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
          </section>
        </section>
        <section id="footer">
          <p>&copy; 2017 <a class="link" href="http://bendingspoons.com" target="_blank" rel="external">Bending Spoons Team</a>. All rights reserved. (Last updated: 2017-07-31)</p>
          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.4</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
        </section>
      </article>
    </div>
  </body>
</div>
</html>
