随机忽略UITableView中UILabel的大小类

时间:2016-07-02 08:57:40

标签: ios objective-c uitableview autolayout uilabel

我有UITableView个自定义单元格,其中包含UILabels。 iPhone和iPad上标签的文字大小应该不同,因此我为常规尺寸类in interface builder设置了不同的字体。

问题在于,有时iPad上的字体大小不受尊重,UILabel显示的文字尺寸较小(来自iPhone的字体)。此外,常规尺寸类的字体大小为ignored randomly for some table view cells

2 个答案:

答案 0 :(得分:1)

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

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

+(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";
}

答案 1 :(得分:1)

根据我的经验,根据大小类指定字体是不可靠的。我经常做的是将字体大小设置为适合最大尺寸等级的尺寸,即iPad,然后将自动收缩中的字体缩小到适合最小尺寸等级的尺度,即iPhone。