【问题标题】:setFont Deprecated?setFont 已弃用?
【发布时间】:2011-05-11 13:08:53
【问题描述】:

我收到一条警告说 setFont 已弃用?

[button setFont:[UIFont boldSystemFontOfSize:13]];

任何建议如何把它拿走请..

【问题讨论】:

    标签: iphone ios objective-c


    【解决方案1】:

    接受的答案有效并为一个按钮实例设置字体。如果您想为所有 UIButtons 设置应用程序宽字体,您可以这样做:

    // Set font to be used for labels inside UIButtons
    [[UILabel appearanceWhenContainedIn:[UIButton class], nil] setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:15.0]];
    

    这在问题中没有具体提出,但如果您需要为所有标签(不在 UIButtons 内)设置字体,您可以这样做:

    // Set font for all UILabels
    [[UILabel appearance] setFont:[UIFont fontWithName:@"HelveticaNeue" size:13.0]];
    

    【讨论】:

    • 这是个好主意。遗憾的是 UILabel 在 UIAppearance 代理中没有字体属性,这就是字体不起作用的原因。看到这个答案stackoverflow.com/questions/17127921/…
    • @EvaMadrazo 你能详细说明什么不起作用吗?我在我的项目中使用上面的代码,它工作正常。要让appearanceWhenContainedInUIButton 一起使用,请将按钮类型设置为UIButtonTypeCustom
    • @EvaMadrazo 哦,您的意思是“为所有标签设置字体”不适用于UIButtons?没错,我编辑了答案以使其更清楚。
    • 是的,uilabel 在外观代理中不包含 setFont。所以,[[UILabel appearance] setFont:..] 没有效果。
    • @EvaMadrazo 仍然很奇怪,即 [[UILabel 外观] setFont:[UIFont fontWithName:@"STHeitiJ-Light" size:15]];似乎对我有用。
    【解决方案2】:

    在 3.x 版本的 SDK 中不推荐直接设置按钮的字体。相反,您需要设置按钮的 titleLabel 属性。

    代码: (mybutton).titleLabel.font = [UIFont systemFontOfSize:13];

    来源:http://www.iphonedevsdk.com/forum/iphone-sdk-development/26126-warning-setting-font-button.html

    【讨论】:

      【解决方案3】:

      由于 UIButton 从 iPhone OS 3.0 开始公开其 titleLabel,您必须直接为其设置字体:

      [button.titleLabel setFont:[UIFont boldSystemFontOfSize:13]];
      

      【讨论】:

        猜你喜欢
        • 2014-02-12
        • 1970-01-01
        • 2016-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-20
        • 1970-01-01
        相关资源
        最近更新 更多