如何返回正确的高度ForRowAtIndexPath
现在我正在尝试适应两个新的iPhone 6/Plus。我正在使用UITableViewController来实现我的表。如何返回正确的高度ForRowAtIndexPath
我的单元格内有一个320x189的UImageView,使用几乎整个单元格,并充当每个单元格的背景。
我得到它的动态和大小的图像会有所不同,所以我无法控制图像的大小。通过使用约束条件,我可以将图像调整到整个单元格。但我觉得在iPhone 6 Plus中,电池的高度至少要高出20px。
有没有什么办法可以检测到它的iPhone 6 Plus/6,并在heightForRowAtIndexPath方法覆盖返回的高度? O也许应该为iPhone 6/Plus使用不同的StoryBoard?
请指教。
谢谢
你可以根据屏幕高度检测它是什么手机。这些是iPhone 4和iPhone 5的屏幕尺寸:http://www.idev101.com/code/User_Interface/sizes.html,这些是iPhone 6/6 +的变暗:http://www.paintcodeapp.com/news/iphone-6-screens-demystified。
iPhone 4的高度为480点,iPhone 5的高度为568点,iPhone 6的高度为667点,6点的高度为736点。
您可以通过[UIScreen mainScreen].bounds.size.height
获得设备屏幕的高度。
所以,你可以告诉你用什么样的手机:
CGFloat h = [UIScreen mainScreen].bounds.size.height;
if (h > 700){
NSLog(@"iPhone 6+");
}
else if (h > 600){
NSLog(@"iPhone 6");
}
else if (h > 500){
NSLog(@"iPhone 5");
}
else{
NSLog(@"iPhone 4");
}
为表单元格的高度,您可以编程设置高度,无论图像的大小在heightForRowAtIndexPath
方法中。如果你的图像是某种阵列,你可以这样做:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return images[indexPath.row].size.height;
}
应该调整每个单元的高度以适合其对应的图像。
希望这会有所帮助!
第一个选项就像一个魅力! 谢谢 – outime 2014-10-07 01:14:45