标签: uicollectionviewlayout

如何将UIView添加到整个UICollectionView

我有一个自定义布局的UICollectionView.它显示网格中的项目(2列),它有多个部分.它完美无缺.

现在,我想在UICollectionView的顶部添加一个UIView.

注意:这不是每个部分的视图.这是整个UICollectionView的视图.

实现这一目标的最佳方法是什么?请记住,我的UICollectionView已经为每个部分显示了自定义UIView.

实际上,我想要的就是我们可以使用uitableview tableHeaderView.

uiview ios uicollectionview uicollectionviewlayout

5
推荐指数
0
解决办法
3131
查看次数

启用了水平滚动和分页的UICollectionViewLayout

在此输入图像描述 在此输入图像描述
我需要准备一个像IOS弹簧板的布局,即水平滚动的网格,启用分页,最重要的是单元格应按行排列而不是列顺式排列(在第二张图像中).我尝试使用UICollectionViewFlowLayout执行此操作,但它会按顺序排列单元格(如第一张图片).

后来我才知道,这可以通过UICollectionViewLayout实现,但我在几点上与Apple文档有点混淆:
1.如何使用UICollectionViewLayout进行水平滚动.
2.我们可以启用分页.
3.它是否使用行和列概念.

pagination gridview horizontal-scrolling ios uicollectionviewlayout

5
推荐指数
1
解决办法
1113
查看次数

在故事板中设置UICollectionViewLayout子类

我正在为我的项目使用故事板,我希望有一个UICollectionViewController子类的场景,谁UICollectionView使用UICollectionViewLayout子类.

我在故事板中设置了这个,我正在尝试更改集合视图的布局实例的"自定义类".

这是我在故事板中选择的布局对象的屏幕抓取:

已选择<code>UICollectionViewFlowLayout</code>.如果我运行该项目,<code>UICollectionViewFlowLayout</code>即使它不是我设置的自定义类,也会使用默认值.</p>

<p>我该如何设置自定义布局类?</p> </div>
        <p>
          <a href=cocoa-touch ios uistoryboard uicollectionview uicollectionviewlayout

5
推荐指数
1
解决办法
2190
查看次数

UICollectionView为大规模集合视图中的每个部分调用高度

我有一个UICollectionView,使用UICollectionViewFlowLayout作为其布局.它由核心数据查询的结果数组支持,并且在那里有10000项样本数据,以测试它在这种情况下的性能.每个项目都有自己的部分,允许我将标题附加到顶部,未来版本中的某些项目将需要其部分中的其他单元格,因此这是一个很好的设置.

我实现了以下UICollectionViewFlowDelegate和UICollectionViewDataSource函数:

func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize
Run Code Online (Sandbox Code Playgroud)

我的collectionview的设置如下所示:

let collectionViewLayout = UICollectionViewFlowLayout()

self.conversationCollectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: collectionViewLayout)
Run Code Online (Sandbox Code Playgroud)

然后我运行应用程序,并在最初加载应用程序时,并 …

objective-c ios uicollectionview uicollectionviewlayout swift

5
推荐指数
0
解决办法
1937
查看次数

垂直对齐的集合视图单元格具有不同的高度

我正在构建一个集合视图,每个单元格都有固定的宽度,但高度不一.每个单元格中应该有1 px的边框.我试图找到一种方法使它们垂直对齐,但最终会在它们之间留下空白区域.有时,细胞最终会彼此重叠.

集合视图示例

什么是解决这个问题的最佳选择.我考虑过继承UICollectionViewFlowLayout

我目前正在设置这样的大小:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout,sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

    return CGSize(width: CGFloat(defaultCellSize), height: CGFloat(defaultCellSize * ratio))

}
Run Code Online (Sandbox Code Playgroud)

objective-c ios uicollectionview uicollectionviewlayout swift

5
推荐指数
1
解决办法
733
查看次数

未定义UICollectionViewFlowLayout的行为

我有一个集合视图,它被设置为单个水平行单元格.它抛出以下约束错误(我正在使用AutoLayout):

未定义UICollectionViewFlowLayout的行为,因为项高度必须小于UICollectionView的高度减去截面插入顶部和底部值,减去内容插入顶部和底部值.

我用Google搜索并查看了SO,并且每个人都建议通过简单地覆盖UIScrollViewDelegate方法来修复它:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    // iPhone 6+ device width handler
    CGFloat multiplier = (screenWidth > kNumberOfCellsWidthThreshold) ? 4 : 3;
    CGFloat size = screenWidth / multiplier;
    return CGSizeMake(size, size);
}

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

但它仍然无法正常工作.尽管我将细胞设置为与容器相同的高度,但细胞高度比它的容器高,这似乎是一种愚蠢的行为.这是错误的其余部分:

相关的UICollectionViewFlowLayout实例是UICollectionViewFlowLayout:0x7fa6943e7760,它附加到MyCollectionView:0x7fa69581f200; baseClass = UICollectionView;

frame =(0 0; 375 98); clipsToBounds = YES; autoresize = RM + BM; layer = CALayer:0x7fa694315a60; contentOffset:{0,0}; contentSize:{0,134}

手动将单元格设置为一个非常小的尺寸(例如,size - 50.0似乎工作,但为什么我不能将单元格大小设置为与其容器相同的高度?

objective-c ios autolayout uicollectionview uicollectionviewlayout

5
推荐指数
1
解决办法
1万
查看次数

水平UICollectionView单行布局

我正在尝试设置什么应该是一个简单的水平布局使用UICollectionView,绕圈而没有达到预期的结果所以任何指针或例子将不胜感激.

可能很少有点我粘贴代码经常改变而没有成功.

图像显示两行,第一行是单个项目,大小正确,并在中心正确对齐.第二行有3个项目,第一行应该与上面的项目大小相同,下一个项目边缘只是可见,表示另一个项目.当项目向左滑动时,它们应该是3个可见的项目 - 主要项目在中心完全可见,项目1和3在左右边缘可见.

我曾尝试设置分页上,不断变化的insetForSectionAtIndex,minimumLineSpacingForSectionAtIndex,minimumInteritemSpacingForSectionAtIndex.


编辑 - 12月16日

我没有解释或说明这一点,所以下面有更好的说明.I know how to create the collection view, set the item size etc but can not get the desired layout.

这是单行水平UICollectionView,其中一个项目始终在全视图中,并且其部分视图中的相邻项目向用户指示根据滚动位置和项目计数向左或向右的项目.

  • 当项目1处于全视图时,项目2处于局部视图中
  • 当项目2处于全视图时,项目1和3处于局部视图(左和右)
  • 当第3项处于全视图时,第2项处于局部视图(左)

objective-c horizontalscrollview ios uicollectionview uicollectionviewlayout

5
推荐指数
1
解决办法
1万
查看次数

CollectionViewLayout补充视图高度等于内容

我有一个UICollectionViewLayout子类,其中包含一个包含多行UILabel的补充视图.问题是并非所有文本在某一点都可见,我如何给予补充视图高度等于其内容?

布局示例.

ios uicollectionview uicollectionviewlayout uicollectionreusableview swift

5
推荐指数
1
解决办法
1591
查看次数

Swift在同一个UICollectionView中有多个行为

我添加自定义collectionViewLayoutCollectionView.我有6个单元格,我使用默认动画样式传递下一个项目.但是当我传递最后一个单元格时,我想将动画制作为PageAnimation(自定义).我想补充collectionViewLayoutviewDidLoad,但它会影响所有的细胞.

let layout = AnimatedCollectionViewLayout()
layout.animator = PageAttributesAnimator()
layout.scrollDirection = .horizontal
collectionView.collectionViewLayout = layout
Run Code Online (Sandbox Code Playgroud)

如何在一个中使用2种不同的布局类型CollectionView

提前致谢.

ios uicollectionview uicollectionviewlayout swift

5
推荐指数
0
解决办法
246
查看次数

Collection view grid last row appears differently despite equal widths - swift iOS

I've a fixed grid of collection view cells (UICollectionView) but the cells in the bottom row always appears with a slightly smaller width on screen. The frame size (or bounds) and calculated width used within collectionViewLayout: UICollectionViewLayout sizeForItemAt are the same for all rows.

在此处输入图片说明

        func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{
    let settings = currentContents[indexPath.item]
    let height = CGFloat(30)

    // /sf/ask/3844065921/
    var cellWidth = CGFloat()
    let availableWidth = collectionView.bounds.size.width
    print("available width", availableWidth)
    let minimumWidth …
Run Code Online (Sandbox Code Playgroud)

ios uicollectionview uicollectionviewlayout swift

5
推荐指数
1
解决办法
202
查看次数