有没有办法为不同的屏幕尺寸更改UILabel文字大小?
我需要在I-phone 6和6 +中更大的文字。
我可以这样做吗?
执行此操作的正确方法是检查屏幕高度,然后更改文本大小吗?
由于
答案 0 :(得分:1)
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)
}
答案 1 :(得分:1)
在.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]];
}
答案 2 :(得分:0)
有一种方便的方法可以从名为Resplendent Utilities的库中确定当前设备的高度。您首先必须在此处为此库安装cocoa pod http://cocoapods.org/pods/ResplendentUtilities。如果你不能安装可可豆荚,你只需从github链接到这个库https://github.com/Resplendent/ResplendentUtilities即可获得所需的代码。
导入此文件后,初始化此文件的类对象(RUScreenSizeToFloatConverter)。然后,您可以在CGFloat中存储此类的相应的HeightForCurrentScreenHeight属性。此属性为您提供当前设备的高度。然后,您可以使用一些条件语句(if(properHeightForCurrentScreenHeight == 736.0f){})根据设备的高度确定标签文本的大小。
答案 3 :(得分:0)
您可以使用尺寸类来配置不同的样式和布局,具体取决于屏幕尺寸。在故事板中Interface Builder的底部,您将看到wAny hAny
。单击该按钮,您可以选择要将样式配置为的设备的大小。