我有一个自定义布局的UICollectionView.它显示网格中的项目(2列),它有多个部分.它完美无缺.
现在,我想在UICollectionView的顶部添加一个UIView.
注意:这不是每个部分的视图.这是整个UICollectionView的视图.
实现这一目标的最佳方法是什么?请记住,我的UICollectionView已经为每个部分显示了自定义UIView.
实际上,我想要的就是我们可以使用uitableview tableHeaderView.
 
 
我需要准备一个像IOS弹簧板的布局,即水平滚动的网格,启用分页,最重要的是单元格应按行排列而不是列顺式排列(在第二张图像中).我尝试使用UICollectionViewFlowLayout执行此操作,但它会按顺序排列单元格(如第一张图片).
后来我才知道,这可以通过UICollectionViewLayout实现,但我在几点上与Apple文档有点混淆:
1.如何使用UICollectionViewLayout进行水平滚动.
2.我们可以启用分页.
3.它是否使用行和列概念.
pagination gridview horizontal-scrolling ios uicollectionviewlayout
我正在为我的项目使用故事板,我希望有一个UICollectionViewController子类的场景,谁UICollectionView使用UICollectionViewLayout子类.
我在故事板中设置了这个,我正在尝试更改集合视图的布局实例的"自定义类".
这是我在故事板中选择的布局对象的屏幕抓取:
 cocoa-touch
        
          ios
        
          uistoryboard
        
          uicollectionview
        
          uicollectionviewlayout
cocoa-touch
        
          ios
        
          uistoryboard
        
          uicollectionview
        
          uicollectionviewlayout
        
我有一个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
我的collectionview的设置如下所示:
let collectionViewLayout = UICollectionViewFlowLayout()
self.conversationCollectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: collectionViewLayout)
然后我运行应用程序,并在最初加载应用程序时,并 …
objective-c ios uicollectionview uicollectionviewlayout swift
我正在构建一个集合视图,每个单元格都有固定的宽度,但高度不一.每个单元格中应该有1 px的边框.我试图找到一种方法使它们垂直对齐,但最终会在它们之间留下空白区域.有时,细胞最终会彼此重叠.
什么是解决这个问题的最佳选择.我考虑过继承UICollectionViewFlowLayout
我目前正在设置这样的大小:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout,sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    return CGSize(width: CGFloat(defaultCellSize), height: CGFloat(defaultCellSize * ratio))
}
objective-c ios uicollectionview uicollectionviewlayout swift
我有一个集合视图,它被设置为单个水平行单元格.它抛出以下约束错误(我正在使用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);
}
但它仍然无法正常工作.尽管我将细胞设置为与容器相同的高度,但细胞高度比它的容器高,这似乎是一种愚蠢的行为.这是错误的其余部分:
相关的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
我正在尝试设置什么应该是一个简单的水平布局使用UICollectionView,绕圈而没有达到预期的结果所以任何指针或例子将不胜感激.
可能很少有点我粘贴代码经常改变而没有成功.
图像显示两行,第一行是单个项目,大小正确,并在中心正确对齐.第二行有3个项目,第一行应该与上面的项目大小相同,下一个项目边缘只是可见,表示另一个项目.当项目向左滑动时,它们应该是3个可见的项目 - 主要项目在中心完全可见,项目1和3在左右边缘可见.
我曾尝试设置分页上,不断变化的insetForSectionAtIndex,minimumLineSpacingForSectionAtIndex,minimumInteritemSpacingForSectionAtIndex.
我没有解释或说明这一点,所以下面有更好的说明.I know how to create the collection view, set the item size etc but can not get the desired layout.
这是单行水平UICollectionView,其中一个项目始终在全视图中,并且其部分视图中的相邻项目向用户指示根据滚动位置和项目计数向左或向右的项目.
objective-c horizontalscrollview ios uicollectionview uicollectionviewlayout
ios uicollectionview uicollectionviewlayout uicollectionreusableview swift
我添加自定义collectionViewLayout来CollectionView.我有6个单元格,我使用默认动画样式传递下一个项目.但是当我传递最后一个单元格时,我想将动画制作为PageAnimation(自定义).我想补充collectionViewLayout的viewDidLoad,但它会影响所有的细胞.
let layout = AnimatedCollectionViewLayout()
layout.animator = PageAttributesAnimator()
layout.scrollDirection = .horizontal
collectionView.collectionViewLayout = layout
如何在一个中使用2种不同的布局类型CollectionView?
提前致谢.
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 …ios ×10
swift ×5
objective-c ×4
autolayout ×1
cocoa-touch ×1
gridview ×1
pagination ×1
uistoryboard ×1
uiview ×1