UITableView 中 UILabel 的大小类随机忽略
Posted
技术标签:
【中文标题】UITableView 中 UILabel 的大小类随机忽略【英文标题】:Size class for UILabel inside UITableView randomly ignored 【发布时间】:2016-07-02 08:57:39 【问题描述】:我有一个UITableView
,其中包含包含UILabels
的自定义单元格。标签的文字大小在 iPhone 和 iPad 上应该是不同的,所以我为常规尺寸类设置了不同的字体in interface builder。
问题是有时在 iPad 上的字体大小不受尊重,UILabel
以小文本大小显示(来自 iPhone 的那个)。此外,常规大小类的字体大小为ignored randomly for some table view cells。
【问题讨论】:
【参考方案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";
【讨论】:
【参考方案2】:根据我的经验,根据大小类别指定字体并不可靠。我经常做的是将字体大小设置为适合最大尺寸类别(即 iPad)的大小,然后将自动收缩中的字体缩小到适合最小尺寸类别(即 iPhone)的比例。
【讨论】:
我有一个类似的问题,我默认保留 iPad 的字体大小并使用 iPhone 的大小类(我不得不将它分别用于 iPhone 纵向和横向,因为没有单一大小一起定义“纵向和横向的所有 iPhone”的类)。 @Szymon 让我知道这是否适合你。 实际上我是通过代码为 iPad 设置字体大小,效果最好。 @stuti 我很想在不久的将来尝试您的解决方案。 @stuti 看起来您的解决方案运行良好。谢谢。以上是关于UITableView 中 UILabel 的大小类随机忽略的主要内容,如果未能解决你的问题,请参考以下文章
如何从动态 UITableView 单元格中获取 UILabel 的大小?
如何将UIImage设置为UITableView Cell,根据我在UILabel中输入的文本动态计算单元格高度?
更改 UIView 框架大小不会更改 UITableview 框架原点 y
如何将 UIImage 设置为 UITableView Cell,它根据我在 UILabel 中输入的文本动态计算单元格高度?