- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试按照此解决方案 (How to determine height of UICollectionView with FlowLayout) 来确定我的 UICollectionViewLayout 的大小,以便相应地调整单元格的大小。我下面的代码调用了 collectionViewContentSize,它在调用时抛出错误:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let frameWidth = collectionViewLayout.collectionViewContentSize.width
let maxCellWidth = (frameWidth) / (7.0/6.0 + 6.0)
let frameHeight = collectionViewLayout.collectionViewContentSize.height
let maxCellHeight = frameHeight
let cellEdge = maxCellWidth < maxCellHeight ? maxCellWidth : maxCellHeight
return CGSize(width: cellEdge, height: cellEdge)
}
错误是线程 1 SIGABRT。
知道为什么这不起作用吗?
最佳答案
你可能会得到无限递归,因为为了知道 Collection View 的内容大小,它需要知道每个项目的大小。 Collection View 调用 sizeForItemAt
的全部原因是确定 Collection View 的内容大小。
好消息是您没有理由询问 Collection View 的内容大小。相反,根据 Collection View 本身的大小而不是其内容大小来确定项目的大小。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let frameWidth = collectionView.frame.width
let maxCellWidth = (frameWidth) / (7.0/6.0 + 6.0)
let frameHeight = collectionView.frame.height
let maxCellHeight = frameHeight
let cellEdge = maxCellWidth < maxCellHeight ? maxCellWidth : maxCellHeight
return CGSize(width: cellEdge, height: cellEdge)
}
关于swift - collectionViewLayout.collectionViewContentSize 获取 SIGABRT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50980101/
我有一个 UICollectionViewController 管理一个 Collection View ,该 Collection View 针对不同的应用程序状态使用不同的布局。我正在使用 -se
我目前正在开发一种功能,可以在 UICollectionView 的 2 个不同 CollectionViewLayouts 之间进行切换。切换工作得很好,布局使用相同的单元类别和不同的 Nib 。我
我想通过使用 UICollectionViewDelegateFlowLayout 为我的 collectionView 的每一行自定义很多布局大小,如下所示: func collectionView
我在 TableView 中有一个动态 collectionView,当我添加 invalidateLayout 时出现错误(图片如下)但是如果我删除 invalidateLayout 前四个单元格被
我在 oneView Controller 中有六个 UICollectionView,取决于用户选择的状态,我想重新加载集合数据。我的收藏 View 应该是水平滚动方向,动态大小单元格。有我的 se
根据UICollectionView和UICollectionViewLayout的类引用,UICollectionView持有对其collectionViewLayout属性的强引用,UIColle
是否可以在故事板中将 CollectionViewFlowLayout 更改为 CollectionViewLayout,因为我需要在示例中实现水流或 Pinterest 布局 RFQuiltLa
我尝试按照此解决方案 (How to determine height of UICollectionView with FlowLayout) 来确定我的 UICollectionViewLayou
所以很有趣,我正在尝试使用 collectionViewLayout sizeForItemAtIndexPath 在 collectionView 中一次只显示一个项目并水平滚动,我试过这个: -
我有一个 UICollectionViewLayout 子类,其中包含一个包含多行 UILabel 的补充 View 。问题是并非所有文本在某个点都是可见的,我怎样才能让补充 View 的高度等于它的
我已经实现了 UICollectionView 并且它可以使用下面的示例水平和垂直滚动粘性行和列: Example Github 应用程序可以在 Swift2 上找到,但升级后 Swift3 Cust
我在获取ListCollectionViewLayout(IGListKit 提供的库存布局)与Texture(以前称为AsyncDisplayKit)一起使用时遇到了麻烦。 这是我的 Collect
我在尝试将 View 更改为 Collection View 时遇到错误 error Argument Labels '(collectionviewlayout:)' do not match an
我开始尝试自定义 UICollectionView 布局。我的 UIViewController 中有一个 UICollectionView,它符合 UICollectionViewDataSourc
我有一个 UICollectionView ,我想动态应用两个不同的布局。 UICollectionViewFlowLayout:具有相同大小的单元格和圆形图像的布局。 var flowLayout:
我创建了一个自定义 collectionViewLayout,它根据设备屏幕大小按比例缩放单元格。包含在单元格中的所有图像似乎都被拉伸(stretch)了。我试过使用 aspectFit 和 aspe
在 collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayo
我想要做的是在选中此单元格时在 UICollectionViewCell 中显示一个 UICollectionView。我想用 rbcollectionviewinfofolderlayout展开我的
在 Swift 1.1 及之前的版本中,这是合法的: let layout = UICollectionViewLayout() class MyDynamicAnimator : UIDynamic
我是一名优秀的程序员,十分优秀!