菜鸟教程小白 发表于 2022-12-12 15:20:05

ios - 层次结构中的 UIAppearance 实例


                                            <p><p>来自 Apple 关于 <code>UIAppearance</code> 的文档:</p>

<blockquote>
<p>To customize the appearances for instances of a class contained within an instance of a container class, <strong>or instances in a hierarchy</strong>, use +appearanceWhenContainedIn: for the appropriate appearance proxy.</p>

<p>In any given view hierarchy the outermost appearance proxy wins. Specificity (depth of the chain) is the tie-breaker.</p>

<p>In other words, the containment statement is treated as a partial ordering. Given a concrete ordering (actual subview hierarchy), we select the partial ordering that is the first unique match when reading the actual hierarchy from the window down.</p>
</blockquote>

<p>有人可以举例说明可以指定层次结构的情况吗?</p>

<p>考虑我希望仅为特定 <code>UITableViewController</code> 子类的实例设置 <code>UITableViewCells</code> 样式的情况</p>

<pre><code>[ setTintColor:];
</code></pre>

<p>但仅对于 <code>SomeXYZTableViewController 的</code> 实例之一,即对于 <code>SomeXYZTableViewController</code> 的两个不同实例,我想要不同的色调。</p>

<p>还有很多其他方法可以做到这一点,但我只是想知道这是否可能。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><blockquote>
<p>But only for one of the SomeXYZTableViewController&#39;s instances</p>
</blockquote>

<p>这当然是可能的,但让我们采取一种更简单、更有可能的方法来做到这一点。你可以继承 UITableView。让我们调用子类 WhiteTableView。它什么也不做;它只是一个子类。您可以将其中一个 TableView 设为 WhiteTableView。</p>

<p>所以现在您可以指定表格 View 单元格应该具有白色色调,但前提是它们位于 WhiteTableView 内。</p>

<p>我在书中给出的例子——来自现实生活——是:</p>

<pre><code>[
    setTintColor: ];
[[UIBarButtonItem appearanceWhenContainedIn:
    , nil]
      setTintColor: ];
[[UIBarButtonItem appearanceWhenContainedIn:
    , , nil]
      setTintColor: ];
</code></pre>

<p>这意味着:</p>

<ol>
<li><p>一般来说,条形按钮项目应该被染成金色。</p></li>
<li><p>但工具栏中的条形按钮项是一个异常(exception):它们应该更白。</p></li>
<li><p>但是 DrillViewControllerView 中工具栏中的条形按钮项是异常(exception):它们应该是金色的。</p></li>
</ol></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 层次结构中的 UIAppearance 实例,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/30339513/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/30339513/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 层次结构中的 UIAppearance 实例