在不同的iOS设备上设置不同的表视图单元大小

时间:2018-04-22 07:45:19

标签: ios swift uitableview

在应用中,我设置cell height iPhone 8 Plus来修复100分。在iPhone 5s中看起来很正常。但是当我运行app时,例如在iPhone 6iOS表格中,单元格在界面中看起来非常大。如何为不同的>> class(motifIndexAfterThresholds) ans = 'double' 设备设置单元格高度?

3 个答案:

答案 0 :(得分:0)

您可以设置相对于屏幕高度或tableView高度的高度 例如:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
    return tableView.frame.size.height/6
}

答案 1 :(得分:0)

快速解决方案可能是

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

    return 100 * self.tableView.frame.size.height / HEIGHT_OF_TABLE_IN_IPHONE_8_PLUS

}

此处记下self.tableView.frame.size.height,将HEIGHT_OF_TABLE_IN_IPHONE_8_PLUS替换为该高度。它显然会根据设备高度给出比例高度。

答案 2 :(得分:0)

请注意我认为这是在不同设备中显示单元格的预期行为。您可能会注意到,如果您在iPhone 8 plus和iPhone 5s上打开联系人 - 例如 - ,您会注意到iPhone 8 Plus显示的联系人数量小于iPhone 5s的小屏幕。

但是,如果您的目标是根据屏幕高度使单元格的高度成比例,则可以通过实现tableView(_:heightForRowAt:)委托方法来实现,如下所示:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    let screenHeight = UIScreen.main.bounds.height
    return screenHeight / 10
}

意味着无论设备是什么,单元格的高度都是屏幕高度的10%。