我们使用UICollectionView来显示覆盖整个屏幕的单元格(减去状态和导航栏)。 单元格大小从self.collectionView.bounds.size设置: – (void)viewWillAppear:(BOOL)animated { // // value isn't correct with the top bars until here // CGSize tmpSize = self.collectionView.bounds.size; _currentCellSize = CGSizeMake( (tmpSize.width), (tmpSize.height)); } – (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { return _currentCellSize; } 这为每个设备设置了正确的大小。 每个单元格被定义为没有插页,并且布局没有页眉或页脚。 但是,当我们从肖像旋转到风景时,我们得到以下“投诉”: the behavior of the UICollectionViewFlowLayout is not defined because: the item height must be less […]
作为一个testing,我做了一个布局,以垂直线显示单元格,另一个以水平布局显示单元格。 当我调用[collectionView setCollectionViewLayout:layout animated:YES]; 它在两个位置之间非常干净地animation。 现在我想要做的是在最终到达目的地之前,所有的视图都进行了一些旋转,扭曲和旋转(可能使用CAKeyframeAnimations),但是我找不到一个合适的位置来吸引它。 我尝试了UICollectionViewLayoutAttributes包含一个animation属性,然后设置这些animation重写我使用的UICollectionViewCell applyLayoutAttributes:方法。 这工作…除了布局过渡完成后才出现。 如果我想使用这个,我必须有布局不改变对象的当前位置,只有在它达到这个应用属性代码的一部分,这似乎很多工作… … – 或者,我可以UICollectionView并覆盖setCollectionViewLayout:animated: UICollectionView但是这也看起来像是很多状态来保持布局之间。 这两种select都不是正确的,因为有一种简单的方法可以在布局中增加/删除单元格。 我觉得应该有一些类似的布局之间的animation挂钩。 有谁知道最好的方法来获得我期望完成的?
我有一个UICollectionView与自定义的UICollectionViewFlowLayout。 它水平滚动,一次只显示一个项目(全高)。 我有pagingEnabled = YES,以便它坚持页面。 UICollectionView在特定的一天内显示照片。 我最初有button来改变一天+/- 1天,但我认为如果用户可以通过第一个或最后一个图像(超过预定的阈值)拉动收集视图来改变一天,那么将会是整洁的。 我使用UIScrollView委托方法实现了这个function,如果在集合视图中有两个或更多的项目,那么它工作的很好。 这很难描述,但是如果只有一个物品,它不允许我把物品拉过它的边界。 IE没有反弹。 我想要这样的行为,但是我需要先解决这个问题。 我在想,如果我删除了pagingEnabled = YES,并使用targetContentOffsetForProposedContentOffset:proposedContentOffset:withScrollingVelocity,我可能能够得到它的工作,但我真的很喜欢分页启用的清醒的行为。 (它们是互斥的)。 任何想法呢?
这与使用stream布局或自定义相关,但不同。 。 这是我想要做的一个例子: 我想知道如果我可以做一个UICollectionViewFlowLayout ,它的子类,或者如果我需要创build一个完全自定义的布局? 根据UICollectionView上的WWDC 2012video,看起来如果您使用垂直滚动的stream布局,则您的布局线是水平的,而如果您水平滚动,则布局线是垂直的。 我想水平滚动的集合视图中的水平布局线。 我的模型中也没有任何固有的部分 – 这只是一组项目。 我可以将它们分组成不同的部分,但是集合视图可以resize,所以可以适合页面的项目数量有时会发生变化,看起来每个项目所在的页面的select最好留给布局,而不是该模型如果我没有任何有意义的部分。 那么,我可以使用stream布局来做到这一点,还是我需要创build一个自定义的布局?
我有一个UIScrollView,列出了一个图标的网格。 如果你想象iOS跳板的布局,你会非常接近正确的。 它有一个水平的页面滚动(就像跳板)。 但是,看起来布局不太正确。 看起来好像是从上到下布置项目。 因此,由于要显示的项目数量,我的最后一列只有2行。 我宁愿让最后一页的最后一行有两个项目,就像你在Springboard中看到的一样。 这怎么可以用UICollectionView和它的相关类来完成? 我必须编写一个自定义的UICollectionViewFlowLayout吗?
考虑具有stream布局和水平方向的UICollectionView 。 默认情况下,单元格从上到下,从左到右排列。 喜欢这个: 1 4 7 10 13 16 2 5 8 11 14 17 3 6 9 12 15 18 在我的情况下,集合视图是分页的,它的devise使每个页面都有特定数量的单元格。 因此,更自然的sorting是: 1 2 3 10 11 12 4 5 6 – 13 14 15 7 8 9 16 17 18 最简单的做法是实现我自己的自定义布局吗? 特别是,我不想放弃使用UICollectionViewFlowLayout免费提供的任何function(例如插入/移除animation)。 或者一般来说,如何在stream布局上实现重sorting函数f(n) ? 例如,同样可适用于从右到左sorting。 我的方法到目前为止 我的第一个方法是UICollectionViewFlowLayout并重写layoutAttributesForItemAtIndexPath: :: – (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath […]
我在我的项目中使用UICollectionView,在一行中有多个不同宽度的单元格。 根据: https : //developer.apple.com/library/content/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/UsingtheFlowLayout/UsingtheFlowLayout.html 它通过相同的填充在整个行上传播出单元格。 这发生的预期,除了我想左alignment他们,并硬编码填充宽度。 我想我需要inheritanceUICollectionViewFlowLayout,但是在阅读了一些教程等在线我似乎并没有得到如何工作。
我正在使用stream布局使用UICollectionView 。 我做了一个自定义的UICollectionViewCell相同。 但是在运行这个项目时,控制台一直在抛出这个错误, UICollectionViewFlowLayout的行为没有定义,因为:项目的高度必须小于UICollectionView的高度减去顶部和底部的值。 我已经确定单元格的大小是正确的 有没有人能够解决这个问题。 提前致谢。 问候Nitesh
1)我怎样才能实现如图所示与UICollectionView ? 2)我试过-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath方法&传递不同的大小,但它留下单元格之间的空间。 我可以清空这些空间吗? 我想为每个细胞不同的高度和宽度 电stream输出: 。
我有UICollectionView水平滚动,并且总是有2个单元并排整个屏幕。 我需要滚动停止在一个单元格的开始。 启用分页后,集合视图会一次滚动整个页面,即2个单元格,然后停止。 我需要启用单个单元格的滚动,或者停止在单元格边缘的多个单元格的滚动。 我试图UICollectionViewFlowLayout并实现方法targetContentOffsetForProposedContentOffset ,但到目前为止,我只能打破我的集合视图,并停止滚动。 有没有更简单的方法来实现这个和如何,或者我真的需要实现UICollectionViewFlowLayout子类的所有方法? 谢谢。