【问题标题】:Proper way to determine UITableViewCell width for grouped custom cells?确定分组自定义单元格的 UITableViewCell 宽度的正确方法?
【发布时间】:2011-07-10 19:48:30
【问题描述】:

我有一个通过代码(不是 Interface Builder)创建的自定义 UITableViewCell。我有依赖单元格宽度的子视图:有一个标签总是需要在单元格的右边缘内。单元格显示在分组的表格视图中。

我最初对这些值进行了硬编码以用于 iPhone,但现在我将应用程序转换为通用二进制文件,并且硬编码的数字已用于 iPad 上的分组表视图。

是否有正确的方法来获取单元格的宽度?框架返回全屏宽度,这使我的标签不合适。还是我应该硬编码两组值,一组用于 iPhone,一组用于 iPad?

任何建议将不胜感激。

【问题讨论】:

    标签: iphone ipad ios uitableview width


    【解决方案1】:

    这些似乎都不适合我;我在 xib 中定义了一个自定义单元格,左侧边缘有一个图形(iPhone 上为 20px),在 iPhone 上看起来不错。但在 iPad 上,图形与左侧分组部分边框重叠!为了修复它,我在图像的水平空间约束(前导)上设置了一个出口,然后在 UITableViewCell 子类的代码中对其进行了调整:

    - (void)setFrame:(CGRect)frame {
        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
            self.leadingSpaceConstraint.constant = 40;
        }
        [super setFrame:frame];
    }
    

    然后摆弄数字直到差距刚刚好。 :)

    我意识到 setFrame: 可能不是这段代码的理想位置,但它有效 - 所以它留下了。

    【讨论】:

      【解决方案2】:

      您应该能够从单元格的contentView 子视图中获取适当的尺寸。但是你通常应该在你的子视图上设置尺寸和自动调整大小的掩码,这样无论最终的具体宽度是多少,单元格都会正确显示。

      【讨论】:

      • 谢谢,这是我的问题。我使用 cell.frame 而不是 cell.contentView.frame 进行计算。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 2023-01-16
      • 2021-09-06
      • 2021-05-07
      相关资源
      最近更新 更多