- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有流布局的垂直滚动 Collection View 。我已经对布局对象进行了子类化,以便将元素在每一行的左侧对齐(使用从这里和那里借来的代码),并将节标题放在每个节的左边距(插图)上(而不是上面),但是否则它只是一个流布局。
我想强制 的单元格一些项目(不是全部)被放置在“下一行”,即使有空间将它们放置在先前放置的单元格的右侧。
我唯一能看到自己这样做的地方是在覆盖 UICollectionViewFlowLayout
时。方法layoutAttributesForItemAtIndexPath(_:)
.
但是,只有委托(delegate)/数据源知道哪些项目需要换行,UICollectionViewDelegate
中的任何方法都不知道。 , UICollectionViewDataSource
或 UICollectionViewDelegateFlowLayout
似乎给了我一个机会来说明这一点。
实现这一目标的优雅方式是什么?
最佳答案
你是对的,UICollectionViewFlowLayout
用于在您的 collectionView 中定位项目。
您可以同时使用 layoutAttributesForItemAtIndexPath
和 layoutAttributesForElementsInRect
结合设置项目位置,如下所述:https://stackoverflow.com/a/25566843/4320246
在您的情况下,您有几种解决方案来确定您的 collectionView 中每个项目的位置:
UICollectionViewFlowLayout
的子类中的 collectionView 中定义每个项目和补充 View 的绝对位置UICollectionViewFlowLayout
的子类决定项目是否需要换行并更改其UICollectionViewLayoutAttributes
UICollectionViewDelegateFlowLayout
并添加一个类似 - (BOOL)shouldItemBePlacedOnTheNextLineAtIndexPath:
的方法并在 UICollectionViewFlowLayout
的子类中调用此方法像这样 :BOOL shouldPlaceOnNextLine = NO;
id < MySubProtocolOfUICollectionViewDelegate > flowLayoutDelegate = (id < MySubProtocolOfUICollectionViewDelegate >)self.collectionView.delegate;
if ([flowLayoutDelegate respondsToSelector:@selector(shouldItemBePlacedOnTheNextLineAtIndexPath:)]) {
shouldPlaceOnNextLine = [flowLayoutDelegate shouldItemBePlacedOnTheNextLineAtIndexPath:indexPath]
}
UICollectionViewFlowLayout
的子类确定项目和补充 View 的位置,并在您的 dataSource/delegate 调用
[(MyCustomFlowLayout *)self.collectionView.collectionViewLayout isItemForceOnNewLine]
如果你需要它。
关于ios - UICollectionViewFlowLayout - 为某些项目强制换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34083094/
在 Vaadin 7.0,显示时JavaBean Table 中的数据与 BeanContainer ,用新数据刷新表的正确方法是什么? 最佳答案 该表通过监听器监视表项的属性。如果您通过表的 Ite
首先,我使用的是带有 Axis2 1.6.2 的 eclipse,我正在 tomcat 6 上部署我创建的 Web 服务。Web 服务是在 eclipse 中通过自上而下的方法创建的。 我被要求使对我
我已将 Rails 3.1.1 应用程序升级到 Rails 3.1.3,现在,对于每个请求,它仅响应错误数量的参数(3 for 1)。不幸的是,它没有说明错误在哪里,并且应用程序跟踪为空。我认为存在一
我是一名优秀的程序员,十分优秀!