如何根据设备屏幕objective-c设置UITableViewCell高度

Posted

技术标签:

【中文标题】如何根据设备屏幕objective-c设置UITableViewCell高度【英文标题】:How to set UITableViewCell height depending on device screen objective-c 【发布时间】:2018-08-08 07:24:26 【问题描述】:

以下是我尝试过的代码,但没有帮助,请检查。

static CGFloat cellDefaultHeight = 180;
CGFloat screenDefaultHeight = [UIScreen mainScreen].bounds.size.height;
CGFloat factor = cellDefaultHeight/screenDefaultHeight;
return factor * [UIScreen mainScreen].bounds.size.height;

【问题讨论】:

您发布的是 Objective-C 代码,而不是 Swift 代码。请正确标记。 是的,你是对的,但我也能理解 swift,所以如果有人可以发布 swift 代码也可以@DharmeshKheni 你到底想要什么? 我得到的 uitableviewcell 高度是 180,它是一个静态高度,但它在 iPhone7 和除 iphone5 之外的所有设备中看起来都不错,所以我需要为所有屏幕设备设置高度。 @FaysalAhmed 高度是根据设备还是根据单元格的内容? 【参考方案1】:

斯威夫特

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat

    let screenHeight = UIScreen.main.bounds.height  
    return (cellDefaultHeight/screenDefaultHeight) * screenHeight

目标 C

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
       CGFloat screenDefaultHeight = [UIScreen mainScreen].bounds.size.height;
        CGFloat factor = cellDefaultHeight/screenDefaultHeight;
        return factor * [UIScreen mainScreen].bounds.size.height;
    

【讨论】:

【参考方案2】:

这是一个逻辑错误 试试这个。

static CGFloat cellDefaultHeight = 180; //lets suppose its a defualt height for iphone6
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
CGFloat factor = cellDefaultHeight * (screenHeight / 667) //667 is height of iphone 6
return factor * cellDefaultHeight;

【讨论】:

所以我必须将每个设备高度替换为 667。【参考方案3】:

你应该使用UITableViewheightForRowAtIndexPath委托方法。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    return [UIScreen mainScreen].bounds.size.width;

【讨论】:

以上是关于如何根据设备屏幕objective-c设置UITableViewCell高度的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React Native 中根据设备类型设置强制设备方向?

如何根据设备/屏幕分辨率调整屏幕?

Objective-C:如何将信号从视图发送到视图控制器以更改视图?

如何根据设备屏幕调整 UICollectionViewCell 的大小

如何在 Objective-C 中不旋转的视图控制器中检测设备的真实方向?

如何在objective-c中将约束添加到UImageView