【发布时间】:2012-11-29 05:16:26
【问题描述】:
我的应用程序的主屏幕是一个带有一些选项的静态表格视图。对于新的 iPhone 5,我必须处理屏幕底部的额外空间:我想根据屏幕尺寸增加单元格的高度,并因此缩放其中的标签字体大小。有没有办法只使用自动布局来做到这一点?如果不是最好的方法是什么?
【问题讨论】:
标签: uitableview height iphone-5 autolayout
我的应用程序的主屏幕是一个带有一些选项的静态表格视图。对于新的 iPhone 5,我必须处理屏幕底部的额外空间:我想根据屏幕尺寸增加单元格的高度,并因此缩放其中的标签字体大小。有没有办法只使用自动布局来做到这一点?如果不是最好的方法是什么?
【问题讨论】:
标签: uitableview height iphone-5 autolayout
我认为针对 iPhone 5 分辨率拉伸表格视图的单元格不是一个好习惯。他们给你更多像素的原因是让用户可以看到更多的屏幕。
如果你坚持这样做,你可以在你的表格视图委托方法中设置行高,使用[[UIScreen mainScreen] bounds].size.height检查屏幕高度是否为568点(iPhone 5高度):
// sets the height for a row based on indexPath
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// check if the iPhone 5 is used by using the screen height
BOOL isIPhone5Used = ([[UIScreen mainScreen] bounds].size.height == 568.0f);
// set the height to a larger number for iPhone 5 rows
return (isIPhone5Used ? 50.0f : 44.0f); // this sets a height of 50 for iPhone 5 rows, and 44 for all other iPhones
}
如果您对不同的行使用不同的高度,您应该根据indexPath 对其进行自定义。或者,如果所有行的高度相同,则返回一个值。
【讨论】:
tableView: heightForRowAtIndexPath:,您将拥有更简洁、更易于管理的代码。