如何仅针对特定屏幕尺寸缩小字体
How to shrink font only for a specific screen size
基于下图:
我希望绿色和红色文本在 4 英寸屏幕尺寸下缩小,但在 4.7 英寸尺寸下不缩小。
我所做的是将 Autoshrink
属性 设置为 Minimum Font Scale
- 0.7 并将标签行 属性 更改为 0.
现在4寸的屏幕字体变小了,4.7的也变小了,我也不想这样。如何防止文本针对特定屏幕缩小?
有没有办法使用 Size Classes
来做到这一点?或者我必须在代码中做一些事情来检查特定的屏幕尺寸?
你不能用Size Classes
来区分iPhone 4和iPhone 4.7。 Size Classes
只能区分这几种情况(见下图)。您必须检查代码中的特定屏幕尺寸
我认为您可以使用此代码来识别设备尺寸:
(#)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";
}
基于下图:
我希望绿色和红色文本在 4 英寸屏幕尺寸下缩小,但在 4.7 英寸尺寸下不缩小。
我所做的是将 Autoshrink
属性 设置为 Minimum Font Scale
- 0.7 并将标签行 属性 更改为 0.
现在4寸的屏幕字体变小了,4.7的也变小了,我也不想这样。如何防止文本针对特定屏幕缩小?
有没有办法使用 Size Classes
来做到这一点?或者我必须在代码中做一些事情来检查特定的屏幕尺寸?
你不能用Size Classes
来区分iPhone 4和iPhone 4.7。 Size Classes
只能区分这几种情况(见下图)。您必须检查代码中的特定屏幕尺寸
我认为您可以使用此代码来识别设备尺寸:
(#)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";
}