【问题标题】:Alternatives to appearance proxy for Table Cells' UILabel setFontTable Cells 的 UILabel setFont 外观代理的替代方案
【发布时间】:2012-04-06 09:55:33
【问题描述】:

我很高兴能够在我的 iOS5 应用程序中使用外观代理来自定义系统范围内的 NavigationController UI 元素,但是:

我的应用中有很多嵌套表格,我希望能够更改所有表格单元格的字体。它们主要是静态创建的。我已经在一个类中生成了一些单元格,从数组中读取,但主要问题在于我在 Interface Builder 中列出的大型内容部分。 IB 似乎没有批量字体设置的选项。

我想知道是否有人可以帮助我找到一种方法来一次性设置所有 UITableCell 字体?

可能是这样的:

[[UILabel appearance] setFont:[UIFont fontWithName:@"Times" size:17.00];

【问题讨论】:

    标签: uitableview ios5 fonts uilabel appearance


    【解决方案1】:

    您可以使用appearanceWhenContainedIn: 来缩小要为其设置外观的 UIView。

    在您的示例中,尝试:

    [[UILabel appearanceWhenContainedIn:[UITableViewCell class], nil] 
              setFont:[UIFont fontWithName:@"Times" size:17.00]];
    

    【讨论】:

    • 非常感谢 - 专注于特定元素的好方法 - 感谢您的反馈!
    • 与一位同事进行了长时间的激烈讨论后,他正确地告诉我 UILabel(在其他对appearanceWhenContainedIn: 做出响应的类中)不符合UIAppearance 协议,所以即使这可能工作它是无证的,因此不值得依赖)。
    • @NSTJ UILabel继承自UIView,符合UIAppearance;所以UILabel确实符合UIAppearance~~,这个方法可以依赖~~。
    • ...但是没有一个方法具有UI_APPEARANCE_SELECTOR 属性,所以可能不是那么可靠/支持。
    【解决方案2】:

    实际上,没有。使用 UIAppearance 来设置 UILabel 的样式是无效的。见my self-answered question here。由于上面列出的原因,它有点工作,但它无效。

    【讨论】:

      猜你喜欢
      • 2012-09-23
      • 2016-09-30
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2013-09-06
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多