BFPaperView 版本 2.2.6

BFPaperView 版本 2.2.6

测试已测试
语言语言 Obj-CObjective C
许可证 MIT 协议
发布日期最新版本发布日期2016 年 8 月

Bence Feher 维护。



BFPaperView 版本 2.2.6

  • Bence Feher

受 Google 材料设计 Paper 主题启发的平面视图。

Animated Screenshot

变更

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

关于

现在具有更平滑的动画和更多公共属性以更轻松地进行自定义!

还有新功能:触摸处理块!

BFPaperView 是 UIView 的子类,其行为与 Google 材料设计实验室的新论文视图非常相似。所有动画都是异步执行的,在子图层上执行。BFPaperViews 立即工作,具有令人愉悦的默认行为,但它们很容易自定义!此视图的几乎所有方面都可以自定义!

BFPaperViews 有两种类型,平面或凸起。平面 BFPaperViews 没有阴影,并且在所有动画过程中都将保持平面。平面视图可以是透明的,在这种情况下,当触摸时会稍微淡化背景。凸起 BFPaperViews 具有跟随触摸移动的下阴影动画,给人一种随着触摸而升高 sensations。凸起的 BFPaperViews 与透明背景颜色一起看起来不太好,因为这将暴露其阴影层。

默认情况下,BFPaperViews 使用“智能颜色”,这将匹配触摸圆圈和背景淡化颜色以匹配 titleLabel 的颜色。您可以通过设置属性将智能颜色设置为 NO 以关闭它,.usesSmartColor。如果您禁用智能颜色,则触摸圆圈和背景颜色淡化都默认使用灰色。您可以通过 .tapCircleColor.backgroundFadeColor 设置自己的颜色。请注意,设置这些禁用智能颜色。

属性

UIColor *shadowColor

凸起按钮的阴影 UIColor。建议 alpha 值为 1,因为 shadowOpacity 会覆盖此颜色的 alpha 值。

CGFloat loweredShadowOpacity

表示凸起的按钮降低(空闲状态)时阴影透明度的 CGFloat 值。默认值为 0.5f

CGFloat loweredShadowRadius

一个 CGFLoat,表示底座按钮在按下(空闲)时的阴影半径。默认值为 1.5f

CGSize loweredShadowOffset

一个 CGSize,表示底座按钮在按下(空闲)时阴影的偏移量。默认值为 (0, 1)

CGFloat liftedShadowOpacity

一个 CGFLoat,表示底座按钮在抬起(触摸按下时)的阴影不透明度。默认值为 0.5f

CGFloat liftedShadowRadius

一个 CGFLoat,表示底座按钮在抬起(触摸按下时)的阴影半径。默认值为 4.5f

CGSize liftedShadowOffset

一个 CGSize,表示底座按钮在抬起(触摸按下时)阴影的偏移量。默认值为 (2, 4)

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

CGFloat cornerRadius

被子层传播的角半径。默认值为 0

UIColor *tapCircleColor

使用此 UIColor 作为您触摸位置出现的圆圈的颜色。注意:设置此颜色会取消触摸圆的“智能颜色”功能。建议使用小于 1 的 Alpha 值。

UIColor *backgroundFadeColor

使用此 UIColor 作为要淡化的清晰背景颜色。注意:设置此颜色会取消背景淡化的“智能颜色”功能。建议使用小于 1 的 Alpha 值。

BOOL rippleFromTapLocation

将此标志设置为 YES 以使触摸圆从触摸点开始扩散。如果将其设置为 NO,则触摸圆将始终从视图中心开始扩散。默认值为 YES

BOOL rippleBeyondBounds

将此标志设置为 YES 以使触摸圆超出视图边界扩散。如果将其设置为 NO,则触摸圆将被裁剪为视图的边界。默认值为 NO

(nonatomic, copy) void (^)(CGPoint location))

如果触摸抬起在视图边界内,将运行这个块。基本上将视图变成一个按钮。

BOOL isRaised

将此标志设置为 YES 以将平面视图变为凸起,或设置为 NO 以将凸起视图变为平面。如果您使用了一个提供的自定义初始化器,您可能应该保持此参数不变。如果您通过故事板或 IB 实例化并且想要从凸起变为平面,这是您的参数!默认值为 YES

关于凸起与平面说明

凸起

具有阴影,因此清晰的背景看起来会很傻。它只有一个触摸圆颜色。没有背景淡化。

扁平

没有阴影,因此清晰的背景看起来很好。如果背景是透明的,它也具有背景渐变色,有助于可视化视图及其框架。

使用

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

创建扁平BFPaperView

BFPaperView *flatPaperView = [[BFPaperView alloc] initWithFrame:rect raised:NO];

创建凸起BFPaperView

BFPaperView *raisedPaperView = [[BFPaperView alloc] initWithFrame:rect raised:YES];

创建具有触摸处理块的凸起BFPaperView(也可以是扁平,只需将凸起标志更改为NO)

BFPaperView *raisedPaperViewWithATapHanlder = [[BFPaperView alloc] initWithFrame:rect raised:YES tapHandlerBlock:someBlockToRunOnTapUp];

自定义示例

BFPaperView *paperView = [[BFPaperView alloc] initWithFrame:CGRectMake(116, 468, 86, 86) raised:YES tapHandlerBlock:someBlockToRunOnTapUp];
paperView.backgroundColor = [UIColor colorWithRed:0.3 green:0 blue:1 alpha:1];
paperView.tapCircleColor = [UIColor colorWithRed:1 green:0 blue:1 alpha:0.6];  // Setting this color overrides "Smart Color".
paperView.cornerRadius = paperView.frame.size.width / 2;
paperView.rippleFromTapLocation = NO;
paperView.rippleBeyondBounds = YES;
paperView.tapCircleDiameter = MAX(paperView.frame.size.width, paperView.frame.size.height) * 1.3;
[self.view addSubview:paperView];

许可证

BFPaperView使用MIT许可证

请参阅包含的LICENSE文件