【问题标题】:how to change uilabel text size in different iPhones如何更改不同 iPhone 中的 uilabel 文本大小
【发布时间】:2015-04-15 23:08:51
【问题描述】:

有没有办法针对不同的屏幕尺寸更改 UILabel 文本大小?

我需要 I-phone 6 和 6+ 中的文字更大。

我可以这样做吗?

执行此操作的正确方法是检查屏幕高度然后更改文本大小吗?

谢谢

【问题讨论】:

  • 是的,在 stroyBoard 中使用 sizeClass,或者以编程方式你可以做这样的事情if (IS_IPHONE6) { [myLabel setFont:[UIFont fontWithName:@"digital-7" size:20]]; else if (IS_IPHONE6_PlUS) [myLabel setFont:[UIFont fontWithName:@"digital-7" size:30]]
  • 什么是 sizeClass?我对 ios 开发人员很陌生。谢谢
  • Size 类允许您为不同的设备尺寸创建动态布局和自适应设计。尝试谷歌它。

标签: ios swift uilabel


【解决方案1】:
    if (self.view.frame.size.width == 320){
        //iPhone 2G, 3G, 3GS, 4, 4s, 5, 5s, 5c
        label.font = UIFont(name: "....", size: 20)
    }
    else if (self.view.frame.size.width == 375){
        //iPhone 6
        label.font = UIFont(name: "....", size: 25)
    }
    else if (self.view.frame.size.width == 414){
        //iPhone 6 Plus
        label.font = UIFont(name: "....", size: 30)
    }

【讨论】:

    【解决方案2】:

    在 .pch 文件中声明以下内容

    #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    #define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)
    #define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
    #define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
    #define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
    #define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))
    #define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
    #define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
    #define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
    #define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
    

    在需要实现的地方使用下面的

    if (IS_IPHONE_6){
            [myLabel setFont:[UIFont fontWithName:@"FontName" size:18]];
        }
        else if (IS_IPHONE_6P){
            [myLabel setFont:[UIFont fontWithName:@"FontName" size:20]];
        }
    

    【讨论】:

      【解决方案3】:

      有一些方便的方法可以从名为 Resplendent Utilities 的库中确定当前设备的高度。您首先必须在http://cocoapods.org/pods/ResplendentUtilities 处为该库安装可可豆荚。如果你不能安装可可豆荚,你可以简单地从 github 链接到这个库https://github.com/Resplendent/ResplendentUtilities 获取所需的代码。

      一旦你的项目中有这个库,导入这个文件https://github.com/Resplendent/ResplendentUtilities/blob/master/Pod/Classes/ResplendentUtilities/Code/ResplendentUtilities/Misc/Compatability/RUScreenSizeToFloatConverter.m

      一旦你导入了这个文件,初始化这个文件的类对象(RUScreenSizeToFloatConverter)。然后,您可以将此类的适当HeightForCurrentScreenHeight 属性存储在 CGFloat 中。此属性为您提供当前设备的高度。然后,您可以使用一些条件语句(if (appropriateHeightForCurrentScreenHeight == 736.0f) {})根据设备的高度确定标签文本的大小。

      【讨论】:

      • 我正在使用 swift ...我不能用 self.view.frame.height 获得高度吗?
      【解决方案4】:

      您可以使用尺寸类来根据屏幕尺寸配置不同的样式和布局。在故事板的 Interface Builder 底部,您将看到 wAny hAny。单击它,您可以选择要配置样式的设备的大小。

      【讨论】:

        猜你喜欢
        • 2021-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-24
        • 2013-05-14
        • 2013-01-11
        • 2014-08-12
        相关资源
        最近更新 更多