在 UICollectionViewController 中指定具体的单元格大小?
Specify concrete cell sizes in UICollectionViewController?
我有一个带有 UICollectionViewController
单元格原型的故事板。未直接指定单元格大小,它会导致随机 UI 错误,例如拉伸单元格动画。我想直接设置大小,但我没有在 xcode 10(和最新的 swift)中找到如何做到这一点。如何解决这个问题?
注意:我知道 UICollectionViewDelegateFlowLayout 存在,但我不知道如何将它应用到 UICollectionViewController
。
发现有 2 种布局可用 - "flow" 和 "custom"(这些名称显示在界面构建器中)。
简而言之,如果您打算使用 UICollectionViewDelegateFlowLayout
及其简单方法 "size for item",那么您应该选择 "flow"
如果你使用UICollectionViewFlowLayout
:
让你的UICollectionViewController
或UIViewController
包含UICollectionView
实例采用UICollectionViewDelegateFlowLayout
class MyAwesomeCollectionViewControler: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
{
...
}
执行下面的方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 100, height: 100) // Return desired size here}
我有一个带有 UICollectionViewController
单元格原型的故事板。未直接指定单元格大小,它会导致随机 UI 错误,例如拉伸单元格动画。我想直接设置大小,但我没有在 xcode 10(和最新的 swift)中找到如何做到这一点。如何解决这个问题?
注意:我知道 UICollectionViewDelegateFlowLayout 存在,但我不知道如何将它应用到 UICollectionViewController
。
发现有 2 种布局可用 - "flow" 和 "custom"(这些名称显示在界面构建器中)。
简而言之,如果您打算使用 UICollectionViewDelegateFlowLayout
及其简单方法 "size for item",那么您应该选择 "flow"
如果你使用UICollectionViewFlowLayout
:
让你的
UICollectionViewController
或UIViewController
包含UICollectionView
实例采用UICollectionViewDelegateFlowLayout
class MyAwesomeCollectionViewControler: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
{ ... }
执行下面的方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { return CGSize(width: 100, height: 100) // Return desired size here}