ios - UICollectionViewCell 相对于 CollectionView 的自动布局大小

标签 ios xcode swift collectionview

我在 CollectionView 中放置了一个 CollectionViewCell。 CollectionView 的大小是通过自动布局设置的,并且有时会发生变化。

我想(以编程方式)在我的 CollectionView 上设置约束,以便 CollectionViewCell 的大小响应 CollectionView 的大小(假设 Cell 的宽度等于 CollectionView-100 的宽度和高度应该相等)。

如何在 Cell 和 CollectionView 之间声明约束?

何时、何地以及如何设置这些约束?当 CollectionView 的大小发生变化时,是否必须在 Cell 上调用 setNeedsLayout?

我搜索了很长时间,但我发现的总是关于根据内容更改单元格的大小——这不是我想要做的。我得到的唯一提示是我可能必须将 CollectionViewLayout 子类化——但我对此不确定。

感谢任何帮助!

最佳答案

您无法使用约束来实现此目的,但您可以使用 UICollectionViewDelegatesizeForItemAtIndexPath 方法轻松实现此目的。示例:

func collectionView(collectionView: UICollectionView, 
       layout collectionViewLayout: UICollectionViewLayout,
  sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    return CGSize(width: collectionView.frame.size.width / 2, height: collectionView.frame.size.height/ 2)
}

在更改 collectionView 大小之后,您需要做的就是调用它的 reloadData 方法。

关于ios - UICollectionViewCell 相对于 CollectionView 的自动布局大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922240/

相关文章:

iphone - 如何像 [self Method_Name]; 一样使用 self 调用方法;当方法名称很长时 Like -(void)imagePickerController : (UIImagePickerController *)

ios - 尝试上传 Xcode 项目时出错 : Please update Xcode and rebuild your app

ios - Swift 3 - 使用 Siri 运行具有特定关键字的应用程序

ios - UITableViewCell - 设置单元格的最佳位置

ios - 在 iOS 5 和 Mac OS X 10.7 上构建 iPhone 工具链

ios - 在 Swift 框架中公开依赖类

ios - 更改 UIImage 中的白色像素

ios - 当弱对象 = [NSMutableString copy] 时,谁持有 [NSMutableString copy]?

iphone - loadView的正确实现方式?

ios - 提取 UI ImageView 坐标