AXStateButton 1.1.4

AXStateButton 1.1.4

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间上次发布2017年10月

Alex Hill 维护。



  • 作者
  • Alex Hill

AXStateButton 是一个简单的 UIButton 子类,提供了类似于 Apple 的基于状态的按钮自定义。想法很简单,但可以作为构建更复杂内容的基石。要开始所有你需要做的是

AXStateButton *button = [AXStateButton button];

// some arbitrary customizations
[button setCornerRadius:0.0f forState:UIControlStateNormal];
[button setCornerRadius:6.0f forState:UIControlStateSelected];
[button setCornerRadius:6.0f forState:UIControlStateHighlighted | UIControlStateSelected];

[button setTransformRotationZ:0 forState:UIControlStateNormal];
[button setTransformRotationZ:M_PI_4 forState:UIControlStateSelected];

// customize the rest of your button...

[self.view addSubview:button];

“嗯,哪些属性是状态可配置的?”

  • 色调颜色
  • 背景颜色
  • 不透明度
  • 标题不透明度
  • 图片不透明度
  • 圆角半径
  • 边框颜色
  • 边框宽度
  • 转换旋转(x,y,z)
  • 转换缩放
  • 阴影颜色
  • 阴影不透明度
  • 阴影偏移
  • 阴影半径
  • 阴影路径

待办事项?

  • 状态的自定义视图

其他有用的事物

您还可以调整状态转换的动画持续时间

button.controlStateAnimationDuration = 0.1;

此外,您还可以更改在控制状态变化时使用的计时函数

button.controlStateAnimationTimingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];

或者,您可以完全禁用动画

button.animateControlStateChanges = NO;

为了方便起见,您可以访问您设置的价值

CGFloat cornerRadius = [button cornerRadiusForState:UIControlStateHighlighted | UIControlStateSelected];
// great success!

贡献

如果您看到错误,欢迎您在 Github 上打开问题,我将尽快处理。当然,您也欢迎fork仓库并创建一个带有您更改的pull request。我很乐意查看它们!