![](/img/trans.png)
[英]How to set different font size for UILabel for different iPhones in storyboard
[英]how to change uilabel text size in different iPhones
有没有一种方法可以针对不同的屏幕尺寸更改UILabel文本大小?
我需要I-phone 6和6+中的文字更大。
我可以这样做吗?
正确的方法是检查屏幕高度,然后更改文本大小吗?
谢谢
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)
}
在.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]];
}
有许多便捷的方法可以从名为Resplendent Utilities的库中确定当前设备的高度。 首先,您必须在http://cocoapods.org/pods/ResplendentUtilities上为此库安装可可豆荚。 如果您无法安装可可豆荚,则只需从github链接中获取所需代码即可,即可访问该库https://github.com/Resplendent/ResplendentUtilities 。
导入此文件后,请初始化该文件的类对象(RUScreenSizeToFloatConverter)。 然后,您可以在CGFloat中存储此类的适当的HeightForCurrentScreenHeight属性。 此属性为您提供当前设备的高度。 然后,您可以使用一些条件语句(如果(appropriateHeightForCurrentScreenHeight == 736.0f){})来确定标签文本的大小,具体取决于设备的高度。
您可以使用尺寸类根据屏幕尺寸配置不同的样式和布局。 在情节wAny hAny
的Interface Builder的底部,您会看到wAny hAny
。 单击该按钮,然后可以选择要配置样式的设备的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.