gpt4 book ai didi

ios - 层次结构中的 UIAppearance 实例

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:58 29 4
gpt4 key购买 nike

来自 Apple 关于 UIAppearance 的文档:

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

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

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.

有人可以给出一个可以指定层次结构的例子吗?

考虑我希望为特定的 UITableViewController 子类实例设置 UITableViewCells 样式的情况

[[UITableViewCell appearance] setTintColor:[UIColor whiteColor]];

但仅对于 SomeXYZTableViewController 的一个 实例,即对于 SomeXYZTableViewController 的两个不同实例,我想要不同的色调。

还有很多其他方法可以做到这一点,但我只是想知道这是否可行。

最佳答案

But only for one of the SomeXYZTableViewController's instances

这当然是可能的,但让我们采用一种更简单、更可行的方法来实现。您可以将 UITableView 子类化。让我们调用子类 WhiteTableView。它什么都不做;它只是一个子类。您可以将其中一个 TableView 设为 WhiteTableView。

现在您可以指定表格 View 单元格应具有白色调颜色,但仅当它们位于 WhiteTableView 内时。

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

[[UIBarButtonItem appearance]
setTintColor: [UIColor myGolden]];
[[UIBarButtonItem appearanceWhenContainedIn:
[UIToolbar class], nil]
setTintColor: [UIColor myPaler]];
[[UIBarButtonItem appearanceWhenContainedIn:
[UIToolbar class], [DrillViewController class], nil]
setTintColor: [UIColor myGolden]];

这意味着:

  1. 一般来说,条形按钮项目应该是金色的。

  2. 但工具栏中的栏按钮项目是个异常(exception):它们应该更浅。

  3. 但是 DrillViewController View 中工具栏中的条形按钮项是异常(exception)的异常(exception):它们应该是金色的。

关于ios - 层次结构中的 UIAppearance 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339513/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com