更改表格视图单元格高度仅适用于 iPad

Posted

技术标签:

【中文标题】更改表格视图单元格高度仅适用于 iPad【英文标题】:Change Table View Cell height for iPad only 【发布时间】:2016-03-07 22:01:03 【问题描述】:

我想知道如何解决这个问题...我只想为 iPad 尺寸更改表格视图单元格的高度。当我尝试使用 Size Classes 更改它时,它会为每台设备更改它,而不仅仅是我所在的设备。我是否必须创建一个全新的故事板,或者是否有办法通过代码或通过自动布局来拥有2 种不同的 tableview 单元格高度 - 一种用于 iPhone,一种用于 iPad。我也在 xcode 中使用 swift

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用userInterfaceIdiom 来查看应用程序是否在 iPad 上运行

switch UIDevice.currentDevice().userInterfaceIdiom 
    case .Phone:
        // It's an iPhone
    case .Pad:
        // It's an iPad
    case .Unspecified:
        // Something undefined
    

或者,您也可以使用屏幕的UITraitCollection

let deviceIdiom = UIScreen.mainScreen().traitCollection.userInterfaceIdiom

switch (deviceIdiom) 
    case .Pad:
      // It's an iPad
    case .Phone:
      // It's an iPhone
    case .TV: 
      // It's a AppleTV
    default:
      // Who knows

【讨论】:

【参考方案2】:

考虑基于尺寸等级而不是设备。您可以通过情节提要或在代码中做到这一点。

如果高度由约束常量设置,您可以选择该约束,然后转到尺寸检查器。常数的左边是一个灰色的+。单击该按钮可以为不同的尺寸类别设置不同的值。

【讨论】:

【参考方案3】:
if UIScreen.main.bounds.size.width < 768  //IPHONE
    tableView.rowHeight = 25;
 else  //IPAD
    tableView.rowHeight = 35;

【讨论】:

【参考方案4】:

在 Swift 5 中,语法略有变化

switch UIDevice.current.userInterfaceIdiom 
        case .phone:
                // iPhone
        case .pad:
                // iPad
        case .unspecified:
                // Something else
        default:
            break

【讨论】:

以上是关于更改表格视图单元格高度仅适用于 iPad的主要内容,如果未能解决你的问题,请参考以下文章

仅针对一种原型单元格的自动表格视图单元格高度

使用最小高度单元格自动调整表格视图

如何在表格视图中更改一个单元格的高度? [复制]

动态更改静态表格视图单元格高度

如何动态更改自定义单元格的表格视图单元格的高度?

如何根据标签文本快速更改表格视图单元格高度?