首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在不同设备的单一大小类中iOS不同的字体大小

在不同设备的单一大小类中iOS不同的字体大小
EN

Stack Overflow用户
提问于 2015-01-22 04:13:20
回答 2查看 16.7K关注 0票数 17

在iOS 8中,我们可以为每个尺寸类设计不同的UI布局。我面临的问题是,我设计了一个布局为紧凑的宽度和常规的高度(尺寸类别为所有纵向iPhones ),但我想保持标签的字体大小较小的3.5和4英寸的设备(iPhone 4和5),然后相对较大的4.7英寸(iPhone 6)和5.5英寸(iPhone 6 Plus)的设备。我已经搜索过了,但找不到一个解决方案来为同一大小类别中的不同设备设置不同的字体大小。

EN

回答 2

Stack Overflow用户

发布于 2015-09-07 18:30:07

两种方式:

1)在app委托中手动制作一个方法,共享其对象并调用该方法。

例如:

代码语言:javascript
复制
    var device = UIDevice.currentDevice().model

    if (device == "iPhone" || device == "iPhone Simulator" || device == "iPod touch")
        {
            labelboarder.frame = CGRectMake(0,self.usernameTF.frame.height-10, self.usernameTF.frame.width, 1)
            labelboarder1.frame = CGRectMake(0,self.usernameTF.frame.height-10, self.usernameTF.frame.width,1)
        }
    else
        {
            labelboarder.frame = CGRectMake(0,self.usernameTF.frame.height, 500, 1)
            labelboarder1.frame = CGRectMake(0,self.usernameTF.frame.height, 500,1)
        }

2)在每个UI项上,转到属性检查器,声明字体。

(在Font size字段的左侧有一个+号。单击它,选择匹配的size类并声明字体大小。)

第二种选择对我来说很方便。祝你编码愉快!

票数 3
EN

Stack Overflow用户

发布于 2017-02-07 15:46:49

像这样创造,

代码语言:javascript
复制
#define VIEWHEIGHT       ([[UIScreen mainScreen] bounds].size.height)
#define VIEWWIDTH        ([[UIScreen mainScreen] bounds].size.width)
#define FONTNAME_LIGHT   @"AppleSDGothicNeo-Regular"
#define FONTNAME_BOLD    @"AppleSDGothicNeo-Bold"
#define LFONT_16         [UIFont fontWithName:FONTNAME_LIGHT size:16]

在此之后,如果您想更改标签字体,我们可以编写简单的Switch case

代码语言:javascript
复制
switch ((VIEWHEIGHT == 568)?1:((VIEWHEIGHT == 667)?2:3)) {
    case 1:{
        boldFont = BFONT_16;
    }
        break;
    case 2:{
        privacyFont = LFONT_18;
        boldFont = BFONT_18;
    }
        break;
    default:{
        privacyFont = LFONT_20;
        boldFont = BFONT_20;
    }
        break;
}

Swift Version

func isPhoneDevice() -> Bool {
    return UIDevice.current.userInterfaceIdiom == .phone
}

func isDeviceiPad() -> Bool {
    return UIDevice.current.userInterfaceIdiom == .pad
}

func isPadProDevice() -> Bool {
    let SCREEN_WIDTH = Float(UIScreen.main.bounds.size.width)
    let SCREEN_HEIGHT = Float(UIScreen.main.bounds.size.height)
    let SCREEN_MAX_LENGTH: Float = fmax(SCREEN_WIDTH, SCREEN_HEIGHT)

    return UIDevice.current.userInterfaceIdiom == .pad && SCREEN_MAX_LENGTH == 1366.0
}

func isPhoneXandXSDevice() -> Bool {
    let SCREEN_WIDTH = CGFloat(UIScreen.main.bounds.size.width)
    let SCREEN_HEIGHT = CGFloat(UIScreen.main.bounds.size.height)
    let SCREEN_MAX_LENGTH: CGFloat = fmax(SCREEN_WIDTH, SCREEN_HEIGHT)

    return UIDevice.current.userInterfaceIdiom == .phone && SCREEN_MAX_LENGTH == 812.0
}

func isPhoneXSMaxandXRDevice() -> Bool {
    let SCREEN_WIDTH = CGFloat(UIScreen.main.bounds.size.width)
    let SCREEN_HEIGHT = CGFloat(UIScreen.main.bounds.size.height)
    let SCREEN_MAX_LENGTH: CGFloat = fmax(SCREEN_WIDTH, SCREEN_HEIGHT)

    return UIDevice.current.userInterfaceIdiom == .phone && SCREEN_MAX_LENGTH == 896.0
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28076020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档