现在,我正在尝试适应两个新的iPhone 6/ Plus。我正在使用UITableViewController实现我的表。
在我的细胞里,我有一个320x189的UImageView,它使用了几乎整个细胞,并充当每个细胞的背景。
我得到的图像是动态的和大小不同的,所以我无法控制图像的大小。通过使用约束条件,我能够适应整个细胞的图像。但是我觉得使用iPhone 6+时,细胞的高度应该至少高20 in。
有任何方法可以检测到its的iPhone 6 Plus/ 6和heightForRowAtIndexPath方法覆盖返回的高度吗?0也许我应该为iPhone 6/ Plus使用不同的iPhone?
请指点。
谢谢
发布于 2014-10-06 22:31:57
你可以根据屏幕高度来检测手机是什么。这些是iPhone 4和5:Interface/sizes.html的屏幕尺寸,这些是iPhone 6/6+:http://www.paintcodeapp.com/news/iphone-6-screens-demystified的dims。
iPhone 4的高度为480 %,iPhone 5为568 %,iPhone为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;
}它应该调整每个细胞的高度以适应其相应的图像。
希望这能有所帮助!
https://stackoverflow.com/questions/26225709
复制相似问题