草庐IT

UICollectionViewLayout

全部标签

ios - UICollectionViewLayout 和方法 layoutAttributesForItem 从未被调用

我正在尝试实现UICollectionViewFlowLayout或UICollectionViewLayout-永远不会调用layoutAttributesForItem的任何方式。我从其他人那里看到他们从self.layoutAttributesForItem调用了layoutAttributesForItem。赞thisflowout示例:我创建了一个Playground你可以看看的项目。总的来说,我只是想扩大中心View。 最佳答案 TrytouseitbySub-ClassingUICollectionViewFlowLa

ios - UICollectionViewLayout layoutAttributesForElementsInRect 和 layoutAttributesForItemAtIndexPath

我正在实现自定义流布局。它有2个主要的重写方法来确定单元格的位置:layoutAttributesForElementsInRect和layoutAttributesForItemAtIndexPath。在我的代码中,调用了layoutAttributesForElementsInRect,但未调用layoutAttributesForItemAtIndexPath。什么决定了哪个被调用?layoutAttributesForItemAtIndexPath在哪里被调用? 最佳答案 layoutAttributesForElement

ios - UICollectionViewFlowLayout 与子类化 UICollectionViewLayout

我知道记录在案的建议是,如果您正在做任何“例如网格或基于行的中断布局”,请使用UICollectionViewFlowLayout。但是,我不确定我的情况是否如此。我想要一个网格,但不想要一个换行布局。项目应该在水平和垂直方向上无限放置,不要堆叠。本质上是一个巨大的棋盘,如果内容超出框架,它会水平或垂直滚动​​。要将UICollectionViewFlowLayout子类化,我必须:重写prepareLayout以停止布局包装项目。这看起来工作量很大。覆盖collectionViewContentSize。Apple表示他们在制作UICollectionViewFlowLayout方面

iphone - 在 UICollectionView/UICollectionViewLayout 旋转或边界更改时禁用淡入淡出的最佳方法是什么?

我有一个UICollectionViewLayout的子类,它将单元格放在一个圆圈中。布局为调用shouldInvalidateLayoutForBoundsChange:返回YES。旋转时,初始位置的单元格淡出,最终位置的单元格淡入。通过将以下代码添加到我的布局中,我可以禁用淡入淡出和项目圈似乎只是随着方向的变化而旋转:-(UICollectionViewLayoutAttributes*)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath*)itemIndexPath{returnnil;}-(UIColl

ios - 如何使用 UICollectionViewLayout 以编程方式在 UICollectionView 上添加 header

我的一个viewcontroller中有一个UICollectionView。我的CollectionView使用UICollectionViewLayout(自定义)的子类来布置单元格。首先,一旦我在Storyboard的下拉菜单中选择Layout作为Custom,选择补充View的选项就会消失。我尝试如下所示以编程方式执行此操作,但没有调用任何委托(delegate)方法。-(UICollectionReusableView*)collectionView:(UICollectionView*)collectionViewviewForSupplementaryElementOfK

ios - 为 UICollectionViewLayout 使用失效上下文

因此,我部分地通过从shouldInvalidateLayoutForBoundsChange:返回YES在我的UICollectionView中实现了工作粘性header。但是,这会影响性能,我不想让整个布局无效,只是让我的标题部分无效。现在,根据官方文档,我可以使用UICollectionViewLayoutInvalidationContext为我的布局定义自定义失效上下文,但文档非常缺乏。它要求我“定义代表布局数据中可以独立重新计算的部分的自定义属性”,但我不明白这是什么意思。有没有人有继承UICollectionViewLayoutInvalidationContext的经验

ios - UIDynamicAnimator + 自定义 UICollectionViewLayout 导致永久圆周运动

我一直在复制2013WWDCSession217“ExploringScrollViewsoniOS7”。我使用的是Xcode7beta2,我的项目仅适用于iOS9。我正在尝试将UIDynamicAnimator与我的UICollectionViewLayout结合使用,其方式类似于session217中呈现的方式,以模仿Messages.app的感觉。我的UICollectionViewLayout是一个自定义布局,出于某种原因,我的单元格似乎在我的项目中以圆周运动反弹。这是我的自定义布局代码。//Didn'twritethiscodemyself,butshouldbepretty

objective-c - 从一个 UICollectionViewLayout 切换到另一个时的自定义动画?

作为测试,我制作了一种布局,以垂直线显示单元格,另一种以水平布局显示单元格。当我调用[collectionViewsetCollectionViewLayout:layoutanimated:YES];时,它会非常干净地在两个位置之间进行动画处理。现在我希望让所有View在最终到达目的地之前在屏幕上进行几次旋转、扭曲和翻转(可能使用CAKeyframeAnimations),但我可以'找不到好地方挂这个。我尝试子类化UICollectionViewLayoutAttributes以包含动画属性,然后将这些动画设置在UICollectionViewCell的重写applyLayoutAt

objective-c - 从一个 UICollectionViewLayout 切换到另一个时的自定义动画?

作为测试,我制作了一种布局,以垂直线显示单元格,另一种以水平布局显示单元格。当我调用[collectionViewsetCollectionViewLayout:layoutanimated:YES];时,它会非常干净地在两个位置之间进行动画处理。现在我希望让所有View在最终到达目的地之前在屏幕上进行几次旋转、扭曲和翻转(可能使用CAKeyframeAnimations),但我可以'找不到好地方挂这个。我尝试子类化UICollectionViewLayoutAttributes以包含动画属性,然后将这些动画设置在UICollectionViewCell的重写applyLayoutAt

ios - 在 UICollectionView 上从右到左对齐

这是一个非常简单的问题,但我无法在SO上找到明确的答案(如果我错过了,请纠正我)。基本上,我的问题是:是否可以将UICollectionView行内容从右到左而不是从左到右对齐?在我的研究中,我看到了建议子类化UICollectionViewFlowLayout的答案,但我找不到为右对齐创建的示例。我的目标是像这样设置2个CollectionView:非常感谢任何帮助! 最佳答案 无需对CollectionView进行任何Xtransform,只需强制RTL:YourCollectionView.semanticContentAtt