BFPaperCollectionViewCell 2.3.7

BFPaperCollectionViewCell 2.3.7

测试已测试
语言语言 Obj-CObjective C
授权 MIT
发布日期最新发布2016 年 8 月

Bence Feher 维护。



  • 作者
  • Bence Feher

基于 Google 的 Material Design:Paper Elements 启发的 UICollectionViewCell 子类。基于 BFPaperTableViewCell,由 Benjamin Truitt 编写。

关于

现在拥有更平滑的动画和更多公开属性,以便更容易地进行自定义!

BFPaperCollectionViewCell 是 UICollectionViewCell 的子类,其行为与 Google 的 Material Design Labs 中的新纸元素功能相似。所有动画都是异步执行的,并在子层上执行。 BFPaperCollectionViewCells 默认即可正常工作,但易于自定义!可以通过公开属性轻松自定义点击圈的着色、背景渐变颜色、背景渐变透明度、背景高亮(持续或渐变消失)、点击圈涟漪位置和点击圈直径。

属性

CGFloat touchDownAnimationDuration

一个表示在触摸下来时动画持续时间的 CGFLoat。默认为 0.25f 秒。 (stitutions)

CGFloat touchUpAnimationDuration

一个表示在触摸上去时动画持续时间的 CGFLoat。默认为 2 * touchDownAnimationDuration 秒。

CGFloat tapCircleDiameterStartValue

一个 CGFLoat,表示点击圈出生时的直径,在这之前它将增长。默认为 5.f

CGFloat tapCircleDiameter

表示点击圈直径的 CGFloat 值。默认将使用 MAX(self.frame.width, self.frame.height) 的结果。 tapCircleDiameterFull 将计算出一个始终填满整个视图的圆。任何小于或等于 tapCircleDiameterFull 的值都将使用默认值。也可使用 tapCircleDiameterLargetapCircleDiameterMediumtapCircleDiameterSmall 这些常数。

CGFloat tapCircleBurstAmount

表示在弹出点击圈时增加直径的 CGFloat 值。默认为 40.f

UIColor *tapCircleColor

用于点击位置出现的圆的 UIColor。注意:设置此颜色将使点击圈失去“智能颜色”功能。建议使用小于 1 的 alpha 值。

UIColor *backgroundFadeColor

将渐变透明度应用于背景的 UIColor。注意:设置此颜色将使背景渐变失去“智能颜色”功能。建议使用小于 1 的 alpha 值。

BOOL rippleFromTapLocation

设置此标志为YES,使触摸点的圆圈水波纹效果生效。如果设置为NO,圆圈水波纹将始终从视图中心开始。默认为YES

BOOL letBackgroundLinger

一个BOOL标志,用于决定触摸后是否保留背景,即“突出显示/选择”单元格。注意,这不会触发setSelected:!这只是一种纯粹的美学效果。这也与cell.selectionStyle相冲突,因此默认构造函数将其设置为UITableViewCellSelectionStyleNone。默认为YES。

BOOL alwaysCompleteFullAnimation

一个BOOL标志,指示是否始终在开始另一动画周期(背景淡入,触摸圆圈生长并爆发,背景淡出)之前完成一个完整的动画周期。NO会像其他BFPaper控件一样,快速触摸会生成许多圆圈,这些圆圈依次淡出。默认为YES

CGFloat tapDelay

一个CGFLoat用于设置延迟触摸事件/触发生成水波纹的时间(以秒为单位)。例如,如果tapDelay设置为1.f,则需要按住单元格1秒才能触发生成圆圈。默认为0.1f

UIBezierPath *maskPath

你可以设置一个UIBezierPath来自定义水波纹和背景淡入的遮罩路径。如果你有自定义的cell路径,请设置此路径。如果此值为nil,BFPaperTableViewCell将尽力提供一个正确的遮罩。默认为nil

使用方法

BFPaperCollectionViewCell头文件和实现文件添加到项目中。(.h & .m)

之后,你可以像使用任何其他UICollectionViewCell一样使用它。

如果你使用具有原型单元格的故事板,请确保将原型单元格的类更改为BFPaperCollectionViewCell,并确保设置重用标识符与下面代码片段中注册的标识符一致!

示例

// Register BFPaperCollectionViewCell for our collectionView in viewDidLoad:
- (void)viewDidLoad
{
  ...
  [self.collectionView registerClass:[BFPaperCollectionViewCell class] forCellWithReuseIdentifier:@"BFPaperCell"];
  ...
}


- (UICollectionViewCell *)tableView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
  BFPaperCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BFPaperCell" forIndexPath:indexPath];

  cell.rippleFromTapLocation = NO; // Will always ripple from center if NO.
  cell.tapCircleColor = [[UIColor paperColorDeepPurple] colorWithAlphaComponent:0.3f];  // Paper Colors can be found in my BFPaperColors library :)
  cell.backgroundFadeColor = [UIColor paperColorBlue];  // Paper Colors can be found in my BFPaperColors library :)
  cell.backgroundFadeAlpha = 0.7f;
  cell.letBackgroundLinger = NO;
  cell.tapCircleDiameter = bfPaperCollectionViewCell_tapCircleDiameterSmall;
  return cell;
}

许可协议

BFPaperCollectionViewCell使用MIT许可协议

请参阅包含的LICENSE文件。