【问题标题】:Resize UICollectionView bounds to fit the cells (using Storyboard + Auto Layout)调整 UICollectionView 边界大小以适应单元格(使用 Storyboard + 自动布局)
【发布时间】:2014-04-09 01:10:20
【问题描述】:

我将 UICollectionView 从我的故事板拖放到现有 UIView 的一个区域,如下所示:

我不想在那个 UICollectionView 中允许滚动/分页,所以我从检查器构建器中禁用了这些选项。

我想要实现的是将 UICollectionView 的框架/边界设置为 自动调整大小 以适应所有单元格。这听起来很简单。

我期待 sizeToFit 来处理它。但它什么也没做..

我什至尝试手动将这些更改为一些硬编码值,但没有任何效果...: setFrame:setBounds:invalidateLayout 等...无济于事。

为了简单起见,我什至删除了我对该 UICollectionView 的所有约束,但我仍然无法更改代码中的大小。

任何帮助将不胜感激!

【问题讨论】:

    标签: iphone objective-c ios7 uicollectionview


    【解决方案1】:

    您能否尝试在方法中调用一个方法(比如 updateMyCollectionViewFrame)

    - (UICollectionViewCell *)cellForItemAtIndexPath:(NSIndexPath *)indexPath
    

    当遇到最后一个item 时。

    【讨论】:

    • 我试过了,也没用。唯一可行的方法是为“高度”约束创建一个出口,并在代码中更改它。我不喜欢这种方法。看起来很老套。
    【解决方案2】:

    这就是我对 Swift 所做的 :) 你也可以在 obj-c 中使用它:

    self.newsGrid.reloadData();
    self.newsGrid.performBatchUpdates({ () -> Void in
    
    }, completion: { (finished) -> Void in
        print("bounds ");
        println(self.newsGrid.bounds);
        print("size ");
        println(self.newsGrid.contentSize);
    });
    

    在您完成数据源设置后调用这些方法。 (注意:打印只是为了演示,你可以在那里设置高度限制,或者只是使用 contentSize 属性改变 UICollectionView 框架)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 2014-09-02
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多