ios - Roboto 字体不适用于 iOS 13 中的 iPhone XR
问题描述
我是 swift 新手,我正在尝试使用 Roboto 字体。Roboto 字体适用于 iPhone 6s,但不适用于 iPhone XR。我的代码是这样的
#ifndef DICE_PrefixHeader_pch
#define DICE_PrefixHeader_pch
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_4 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 480.0)
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)
#define IS_IPHONE_6PLUS (IS_IPHONE && [[UIScreen mainScreen] nativeScale] == 3.0f)
#define IS_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0)
#define IS_IPHONE_X (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 812.0)
#define IS_IPHONE_XR (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 1792.0)
GenralMethod.h
+(UIFont*)setFont:(NSString*)fontName ForiPhone6Plus:(CGFloat)iPhone6Plus iPhone6:(CGFloat)iPhone6 iPhoneXR:(CGFloat)iPhoneXR andiPhone:(CGFloat)iPhone;
GenralMethod.m
+(UIFont*)setFont:(NSString*)fontName ForiPhone6Plus:(CGFloat)iPhone6Plus iPhone6:(CGFloat)iPhone6 iPhoneXR:(CGFloat)iPhoneXR andiPhone:(CGFloat)iPhone
{
return [UIFont fontWithName:fontName size:IS_IPHONE_6_PLUS?iPhone6Plus:IS_IPHONE_XR?iPhoneXR:IS_IPHONE_5?iPhone:iPhone6];
}
[btnMessage.titleLabel setFont:[GeneralMethod setFont:@"Roboto-Light" ForiPhone6Plus:20.0 iPhone6:20.0 iPhoneXR:20.0 andiPhone:15.0]];
我也在情节提要中添加了它,但它在 iPhone XR 中不起作用。
解决方案
按点而不是像素定义设备屏幕尺寸。
这条线永远不会被使用。
#define IS_IPHONE_XR (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 1792.0)
iPhone XR 的屏幕尺寸为 414×896 点(828×1792 像素)。
有关所有 iPhone 屏幕尺寸的完整列表,请查看此链接: https ://developer.apple.com/library/archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/Displays/Displays.html
推荐阅读
- python - 计算字符串中的所有回文子字符串
- algorithm - 我怎样才能制作一个数字的金字塔循环但相反
- compiler-construction - 用于自定义 SOC 的 Llvm
- php - 远程mysql数据库是否支持ajax?尝试拨打任何电话时,我不断收到 500 个内部错误
- javascript - Javascript 自动更新总计
- powershell - 通过 .NET 核心与 Get-WmiObject 交互
- expression - 使用 pyparsing 解析表达式列表
- angular - 在http调用中获取值后如何返回函数?
- javascript - CryptoJS -- `toString` 方法崩溃
- python-3.x - 第一次后如何保持 rand var 不变