首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何返回正确的heightForRowAtIndexPath

如何返回正确的heightForRowAtIndexPath
EN

Stack Overflow用户
提问于 2014-10-06 22:14:28
回答 1查看 327关注 0票数 0

现在,我正在尝试适应两个新的iPhone 6/ Plus。我正在使用UITableViewController实现我的表。

在我的细胞里,我有一个320x189的UImageView,它使用了几乎整个细胞,并充当每个细胞的背景。

我得到的图像是动态的和大小不同的,所以我无法控制图像的大小。通过使用约束条件,我能够适应整个细胞的图像。但是我觉得使用iPhone 6+时,细胞的高度应该至少高20 in。

有任何方法可以检测到its的iPhone 6 Plus/ 6和heightForRowAtIndexPath方法覆盖返回的高度吗?0也许我应该为iPhone 6/ Plus使用不同的iPhone?

请指点。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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获取设备屏幕的高度。

所以你可以知道你用的是什么类型的手机:

代码语言:javascript
复制
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方法中图像的大小。如果将图像放在某种数组中,则可以:

代码语言:javascript
复制
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return images[indexPath.row].size.height;
}

它应该调整每个细胞的高度以适应其相应的图像。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26225709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档