测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
授权 | MIT |
发布日期最新发布 | 2016 年 8 月 |
由 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
的值都将使用默认值。也可使用tapCircleDiameterLarge
、tapCircleDiameterMedium
和tapCircleDiameterSmall
这些常数。
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文件。