【问题标题】:How to get correct width of a UIView inside UITableViewCell?如何在 UITableViewCell 中获得正确的 UIView 宽度?
【发布时间】:2020-09-04 04:04:33
【问题描述】:

我在 UITableViewCell 中添加了一个 UICollectionView。我正在尝试将 collectionView.collectionViewLayout.itemSize.width 设置为等于 UIView pageContainerView.bound.size.width 内部表格视图单元格。我正在尝试在awakeFromNib 中设置项目大小。 pageContainerView 是使用自动布局添加的,它有 8 个前导和尾随到超级视图。

- (void)awakeFromNib {
    [super awakeFromNib];

    UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
    CGFloat width = self.pageContainerView.bounds.size.width;
    CGSize size = CGSizeMake(width, 321);
    layout.itemSize = size;
    layout.minimumInteritemSpacing = 0;
    layout.minimumLineSpacing = 0;
}

但项目尺寸宽度比预期的要短。

【问题讨论】:

    标签: ios objective-c swift


    【解决方案1】:

    我认为这里的问题是您在实际显示在屏幕上之前设置单元格的大小,因此整个单元格实际上还不是屏幕的大小。我会在您配置单元格时尝试设置单元格大小(在 cellForItemAt 中)。

    【讨论】:

      【解决方案2】:

      你可以在layoutSubviews得到正确的尺寸

      - (void) layoutSubviews {
          [super layoutSubviews];
          CGFloat width = self.pageContainerView.bounds.size.width;
          CGSize size = CGSizeMake(width, 321);
          self.layout.itemSize = size;
          [self.layout invalidateLayout];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多