UICollectionView,只是适合单元格宽度?

Fat*_*tie 32 ios uicollectionview uicollectionviewcell

这是一个黄色的简单UICollectionView

在此输入图像描述

红色箭头设置单元格的宽度.(TBC:单击粉红色单元格:对于"大小"选择"默认",然后您在红色箭头处设置的内容将变为单元格的大小.)

例如,直立的iPhone设置宽度为320.

但这看起来很疯狂......当然我可以根据UICollectionView的宽度设置单元格宽度?

自动调整视图本身没有问题.

在此输入图像描述

这很好.

但似乎很疯狂,我无法将CELL的宽度设置为"与视图相同".似乎很难相信人们必须在代码中手动设置它?

TBC换句话说,正如尼基塔指出的那样,

-(CGSize) collectionView:(UICollectionView *)collectionView
     layout:(UICollectionViewLayout *)collectionViewLayout
     sizeForItemAtIndexPath:(NSIndexPath *)indexPath
    {
    return self.view.frame.size;
    }
Run Code Online (Sandbox Code Playgroud)

(事实上​​你通常也需要这个...)

-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView
   layout:(UICollectionViewLayout*)collectionViewLayout
   insetForSectionAtIndex:(NSInteger)section
    {
    return UIEdgeInsetsMake(0,0,0,0);   //t,l,b,r
    }
Run Code Online (Sandbox Code Playgroud)

事实上 - 你必须在代码中做到这一点?!在Storyboard中,没有办法在自动布局或其他任何事情上做到这一点?!

Nik*_*ook 32

我想你需要看看

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

UICollectionViewLayout,你可以根据方向和当前帧设置大小.


看起来你只需要在代码中执行此操作.

  • 谢谢你的快速回答; 我听到你了.但是再一次 - 你必须在代码中做到这一点似乎令人难以置信?在iOS中,每个其他类型的视图(据我所知),您可以简单地指示它伸展以填充它所在的容器视图,对吧?再次感谢... (2认同)
  • @JoeBlow我认为这不是Cell的情况.它们的设计不适合父母的大小.但如果你找到了解决方案 - 请告诉我:) (2认同)