如何仅针对特定屏幕尺寸缩小字体

Posted

技术标签:

【中文标题】如何仅针对特定屏幕尺寸缩小字体【英文标题】:How to shrink font only for a specific screen size 【发布时间】:2016-07-02 14:51:30 【问题描述】:

根据下图:

我希望 4 英寸屏幕尺寸的绿色和红色文本缩小,而不是 4.7 英寸尺寸。

我所做的是将 Autoshrink 属性设置为 Minimum Font Scale - 0.7 并将标签 Lines 属性更改为 0。

现在字体缩小了 4 英寸屏幕,但也适用于 4.7 的,我也不想要。如何防止文本缩小特定屏幕?

有没有办法使用 Size Classes 做到这一点?或者我必须在代码中做一些事情来检查特定的屏幕尺寸?

【问题讨论】:

【参考方案1】:

您不能使用Size Classes 来区分 iPhone 4 和 iPhone 4.7Size Classes 只能区分这些情况(见下图)。您必须检查代码中的特定屏幕尺寸

【讨论】:

【参考方案2】:

我认为您可以使用此代码来识别设备大小:

(#)define iosVersionGreaterThanOrEqualTo(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

在头文件(.h)中

+(NSString*)deviceSize

CGFloat screenHeight = 0;

if (iOSVersionGreaterThanOrEqualTo(@"8")) 
    screenHeight = MAX([[UIScreen mainScreen] bounds].size.height, [[UIScreen mainScreen] bounds].size.width);
else
    screenHeight = [[UIScreen mainScreen] bounds].size.height;

if (screenHeight == 480)
    return "Screen 3.5 inch";
else if(screenHeight == 568)
    return "Screen 4 inch";
else if(screenHeight == 667)
    if ([UIScreen mainScreen].scale > 2.9) return Screen5Dot5inch;
    return  "Screen 4.7 inch";
else if(screenHeight == 736)
    return "Screen 5.5 inch";
else
    return "UnknownSize";

【讨论】:

以上是关于如何仅针对特定屏幕尺寸缩小字体的主要内容,如果未能解决你的问题,请参考以下文章

如何让图像响应屏幕尺寸但不逐渐缩小?

针对不同屏幕尺寸在特定像素位置绘制小部件

如何使用情节提要为不同的 iPhone 屏幕尺寸设置不同的字体尺寸?

为啥@media 查询不改变特定屏幕尺寸上的元素?

如何水平居中对齐标签以快速适应所有屏幕尺寸

不了解自动布局、约束和尺寸类