BFPaperTableViewCell 2.3.10

BFPaperTableViewCell 2.3.10

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released上次发布2017年2月

Bence Feher维护。



  • Bence Feher

一个由Google的Material Design: Paper Elements启发的UITableViewCell子类。

Animated Screenshot

变更

请参阅包含的变更记录文件

关于

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

BFPaperTableViewCell是UITableViewCell的一个子类,其行为类似于Google的Material Design Labs中的新纸张表格单元格。所有动画都是异步的,在子层上执行。BFPaperTableViewCells可以通过公共属性轻松自定义!可以自定义按圈颜色,背景渐变颜色,背景渐变透明度,背景高亮(停留或渐变消失),按圈涟漪位置和按圈直径。

默认情况下,BFPaperTableViewCells使用“智能颜色”,会使按圈颜色和背景渐变颜色与textLabel颜色匹配。您可以通过将属性.usesSmartColor设置为您来关闭智能颜色。如果禁用智能颜色,则默认将使用灰色颜色,既用于按圈颜色也用于背景颜色渐变。您可以通过以下内容设置自己的颜色:.tapCircleColor.backgroundFadeColor。请注意,设置这些将禁用智能颜色。

属性

BOOL usesSmartColor

一个标志,将其设置为YES以使用智能颜色,或设置为NO以使用自定义颜色方案。虽然智能颜色是默认设置(usesSmartColor = YES),但自定义也很酷。

CGFloat touchDownAnimationDuration

代表在触摸下拉出的动画持续时间的CGFLoat。默认值是0.25f秒。(钢人队加油!)

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 值。默认为 100.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

可以设置以覆盖涟漪和背景淡入的 maskPath 的 UIBezierPath。如果您为单元格有自定义路径,请设置此值。如果这是 nil,则 BFPaperTableViewCell 将尽力提供正确的 mask。默认为 nil

使用方法

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

之后,您可以使用它就像使用任何其他的 UITableViewCell 一样。

如果您使用带有原型单元格的故事板,请确保将原型单元格的类更改为 BFPaperTableViewCell

示例

// Register BFPaperTableViewCell for our tableView in viewDidLoad:
- (void)viewDidLoad
{
  ...
  [self.tableView registerClass:[BFPaperTableViewCell class] forCellReuseIdentifier:@"BFPaperCell"];  // NOTE: This is not required if we declared a prototype cell in our storyboard (which this example project does). This is here purely for information purposes.
  ...
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  BFPaperTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BFPaperCell" forIndexPath:indexPath];
  if (!cell) {
    cell = [[BFPaperTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BFPaperCell"];
  }
  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 = bfPaperTableViewCell_tapCircleDiameterSmall;
  return cell;
}

许可证

BFPaperTableViewCell 使用 MIT 许可证

请参阅包含的 LICENSE 文件