(图片来自使用 Bubble Pictures 的 Luv.it App)
*创作者 Kevin Belter.
关于
这个库用于以美观的方式显示图片,如果您想显示用户点赞的帖子等情况,那么 BubblePictures 是您的最佳选择。BubblePictures 支持所有屏幕尺寸和方向。并且非常易于使用。您可以随意下载示例代码并尝试不同的尺寸 :P 如果您对此有疑问,请通过我的电子邮件与我联系。用爱和咖啡制作而成 :).
示例
要运行示例项目,请克隆存储库,然后首先从 Example 目录运行 pod install
。
要求
iOS 9.0 或以上
安装
BubblePictures 通过 CocoaPods 提供。要安装它,只需在您的 Podfile 中添加以下行
pod 'BubblePictures'
用法
要使用它,只需添加一个所需大小的 CollectionView。
然后,你必须为每个要显示的泡泡图片创建一个 BPCellConfigFile。BPCellConfigFile 初始化器有两个值
- imageType: (这是一个支持 3 个不同值的枚举 [UIImage, URL 或 UIColor])
- title: 这是一个字符串,位于泡泡图片前的标题。
在拥有您的 BPCellConfigFile 数组后,您还必须有一个 bubblePicture 实例的引用,以便您可以在 ViewController 中这样使用它,例如
private var bubblePictures: BubblePictures!
最后,在您的 ViewDidLoad 中,您可以初始化 bubblePictures 如下
bubblePictures = BubblePictures(collectionView: {{YOUR_COLLECTION_VIEW}}, configFiles: {{YOUR_BPCellConfigFiles_ARRAY}})
就是这样,现在您应该能够完美地看到泡泡正在渲染。
代理
如果您想了解用户何时点击一个泡泡,则必须采用 BPDelegate 协议。它为此目的提供了 2 个方法
- func didSelectTruncatedBubble()
- func didSelectBubble(at index: Int)
使用这些方法,您可以在用户点击泡泡时实现任何所需操作。
请记住,通过这样做在您的 bubblePictures 实例中标记您现在是代理
bubblePictures.delegate = self
布局配置
如果您想配置布局,必须在初始化器中注入 layoutConfigurator。
layoutConfigurator 是一个结构体,具有以下值
- backgroundColorForTruncatedBubble: 在泡泡因屏幕空间而被截断的情况下,该颜色用于背景颜色。
- fontForBubbleTitles: 如果你想使用其他字体,可以在这里传入气泡标题的字体。
- colorForBubbleBorders: 例如,如果你在collectionView下方有一个黑色的背景,你应该传入UIColor.black以实现良好的布局。
- colorForBubbleTitles: 这是气泡标题的颜色。
- maxCharactersForBubbleTitles: 这是每个气泡标题的最大字符数。
- maxNumberOfBubbles: 如果你想为显示的气泡数量设置一个硬编码的值,你可以添加这个属性。(如果数量大于整个屏幕,则将显示适合屏幕的最多气泡数)
- displayForTruncatedCell: 如果你不想BubblePictures计算截断单元格中的数字,你可以自己指定一个。
- widthForBubbleBorders: 气泡的边框宽度。
- bubbleImageContentMode: 气泡中图像的内容模式。
- distanceInterBubbles: 每个气泡之间的距离,默认值是气泡大小的三分之一个。
- alignment: 气泡的对齐方式,如果你想让它们靠右或靠左。
因此,你可以创建一个布局配置器,如下所示
let layoutConfigurator = BPLayoutConfigurator(backgroundColorForTruncatedBubble: UIColor.hex("D75A4A"), fontForBubbleTitles: UIFont(name: "HelveticaNeue-Light", size: 17.0)!, colorForBubbleBorders: UIColor.white, colorForBubbleTitles: UIColor.white, maxCharactersForBubbleTitles: 3)
然后将其注入初始化器中
bubblePictures = BubblePictures(collectionView: {{YOUR_COLLECTION_VIEW}}, configFiles: {{YOUR_BPCellConfigFiles_ARRAY}}, layoutConfigurator: layoutConfigurator)
更新历史
*版本 2.1.3
- 将布局配置器中的'numberForTruncatedCell'属性更改为'displayForTruncatedCell'。该属性现在是一个支持枚举的类型,包括
- 数字(唯一的前一个可用值)
- 文本
- 图像类型(URL、图像或颜色)
感谢 Valgrin 创建PR并添加此功能 :)
作者
Kevin Belter, [email protected]
部分图像由 Carlos Nicolas 创作并制作 Kans
许可证
BubblePictures 使用MIT许可证。更多信息请参阅LICENSE文件。