TRMosaicLayout 1.0.0

TRMosaicLayout 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年10月
SwiftSwift 版本3.0
SPM支持 SPM

Vincent Le 维护。



  • 作者:
  • Vincent Le

TRMosaicLayout

codebeat badge

Lightbox算法 启发的马赛克集合视图布局。这是对 @fmitech的 FMMosaicLayout 的swift实现/扩展。标准的 UICollectionViewFlowLayout 可能会让您的应用呈现显得很无聊,但TRMosaicLayout是一个简单的特性,可以吸引用户的注意力。如果您不相信我,请查看Snapchat的应用及其Discover流中的出色布局。

TRMosaicLayout实现

@snapchat 使用类似的实现

为什么使用这个

  • TRMosaicLayout非常适合显示直立或有相似宽高比的图片
  • 示例
    • 电影海报
    • 书籍封面
    • 杂志
    • 新闻文章

安装

手动

  1. 下载并将 /TRMosaicLayout文件夹拖到您的项目中。
  2. 恭喜!

实现

创建 UICollectionViewController 的子类

import TRMosaicLayout

class TRCollectionViewController: UICollectionViewController {
  override func viewDidLoad() {
    super.viewDidLoad()

      let mosaicLayout = TRMosaicLayout()
      self.collectionView?.collectionViewLayout = mosaicLayout
      mosaicLayout.delegate = self
  }
}

通过 TRMosaicLayoutDelegate 扩展您的 UICollectionViewController 子类

extension TRCollectionViewController: TRMosaicLayoutDelegate {

  func collectionView(collectionView:UICollectionView, mosaicCellSizeTypeAtIndexPath indexPath:NSIndexPath) -> TRMosaicCellType {
    // I recommend setting every third cell as .Big to get the best layout
    return indexPath.item % 3 == 0 ? TRMosaicCellType.Big : TRMosaicCellType.Small
  }

  func collectionView(collectionView:UICollectionView, layout collectionViewLayout: TRMosaicLayout, insetAtSection:Int) -> UIEdgeInsets {
    return UIEdgeInsets(top: 3, left: 3, bottom: 3, right: 3)
  }

  func heightForSmallMosaicCell() -> CGFloat {
    return 150
  }
}

故障排除

单元格之间的对齐不正确

  • 确保您添加到单元格中的视图具有正确的框架
  let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath)
  let imageView = UIImageView(image: image)
  imageView.frame = cell.frame
  cell.backgroundView = imageView
  return cell

尝试解包时获取 nil 错误

  • 确保您已将 TRMosaicLayout 的代理设置为您的 collectionViewController
  • mosaicLayout.delegate = self

还有其他事情工作不正常

  • 请使用右侧的github问题报告者,这将是您的最佳选择,因为我通常会定期访问GitHub
  • 给我发邮件 [email protected]

发布历史

  • 0.1.0 第一次在CocoaPods上发布

贡献

我很乐意接受任何开放性的贡献。只需fork此项目,进行更改,并提交pull请求。

作者

梁文森,[邮箱地址保护]

许可证

TRMosaicLayout适用于MIT许可证。有关更多信息,请参阅LICENSE文件。