【问题标题】:What is the default height of UITableViewCell?UITableViewCell 的默认高度是多少?
【发布时间】:2010-10-10 08:09:13
【问题描述】:

我认为这些信息会更容易找到:-)

UITableViewCell 的默认高度是多少?它看起来像 44 像素,但我更愿意确定。

【问题讨论】:

    标签: ios iphone uitableview


    【解决方案1】:

    这听起来很对。但是为了确保您可以加载界面生成器,将 UITableViewCell 放入项目中,然后在 Inspector 窗口中检查大小属性。我现在没有 MacBook,所以无法查看。但是,如果您没有从某人那里得到更好的答案,那么您可以自己检查。

    【讨论】:

    • 啊,好吧,这就是我最初得到 44 的地方。
    【解决方案2】:

    它是 44 像素。确实。我永远不会忘记那个号码。

    44px 也是 UIToolbar 和 UINavigationBar 的默认高度。 (当自动旋转到横向时,两者都会切换到 32 像素。)

    【讨论】:

    • 哈哈,“我永远不会忘记那个数字”听起来不祥;-)
    • 有谁知道是否有办法以编程方式检索此值?
    • @antony: view.bounds.size.height
    • @MikeyWard:您可能已经想通了,但是 1px 分隔符包含在高度中。它实际上覆盖了单元格的最底部内容。
    • 从技术上讲,它是 44 分。在 Retina 显示屏上显示为 88 像素。不要分裂头发或任何东西。
    【解决方案3】:

    style = UITableViewStyleGrouped 时,顶部和底部单元格的默认高度实际上是45.0f(不是44.0f)。而且,如果分组表只有一行,则单元格高度将为46.0f

    【讨论】:

    • 是否包含分隔符?
    【解决方案4】:

    如果您想即时计算,只需分配一个虚拟表格单元格并读取其高度

    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    int height = cell.frame.size.height ;
    

    这样你就可以抵御未来 iOS 版本的变化,尽管我认为这不太可能。

    【讨论】:

    • 自动布局有问题
    • 自动布局的一切都有问题。
    • 问题到底是怎么回事?
    【解决方案5】:

    “当 style = UITableViewStyleGrouped 时,顶部和底部单元格的默认高度实际上是 45.0f(不是 44.0f)。如果分组表只有一行,则单元格高度将为 46.0f。” 这是不对的!!事实上44.0f!我只是测试一下!

    【讨论】:

      【解决方案6】:

      如果你想在任何设备上使用默认尺寸,你可以使用:UITableViewAutomaticDimension

      - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
      
          return UITableViewAutomaticDimension;
      }
      

      虽然 44 像素目前是默认值,但如果您的应用依赖于设置默认值,这将是一种有用的方法。

      【讨论】:

      • 在 Swift 4 中被重命名为 UITableView.automaticDimensions
      • 这只有在你想要的只是默认高度的情况下才有效。如果您确实想要默认高度的倍数,那么 this 返回的值不是实际高度。 Apple 已经隐藏了这个神奇数字背后的真实点高(恰好是 -1)。
      【解决方案7】:

      在 iOS 12 上,iPhone X 等设备(X、XS、XS Max、XR)的默认高度为 49pt

      iOS 12 上的其他设备仍将 44pt 作为默认值。 这是一个微妙的差异,但在直接比较中感觉就像是一个很好的改进。

      如果您不相信我,请在此屏幕截图中自己测量(不要忘记除以 3)... ;)

      【讨论】:

        【解决方案8】:

        Swift 4Swift 5 中只需使用:

        UITableView.automaticDimension
        

        使用 44px 是不够的,因为它会随着不同的屏幕像素密度而变化。

        【讨论】:

          猜你喜欢
          • 2016-02-13
          • 2019-09-22
          • 2015-08-12
          • 1970-01-01
          • 1970-01-01
          • 2011-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多