StickyButton
适用于 iOS 的粘性浮动操作按钮。
功能 ⦿ 预览 ⦿ 要求 ⦿ 安装 ⦿ 用法 ⦿ 待办事项 ⦿ 作者 ⦿ 许可
该项目受 Floaty 项目启发,而 Floaty 项目本身又受到 KCFloatingActionButton 的启发。基本上,我想得到 Floaty 按钮所做的事情,并增加更多功能和灵活性。
功能
✅ 完全可定制✅ 在 Swift 和 Objective-C 项目中都有效✅ 支持界面构建器✅ 用户友好✅ 支持 RLT✅ 支持侧边滑动更改✅ 兼容性和可定制性的无障碍设计✅ 支持界面方向变化✅ 提供全局实例,适用于所有屏幕,兼容UIWindowSceneDelegate
和 iOS 13
预览
要求
- iOS 11.0 和更高版本
- Swift 5.0
安装
Cocoapods
use_frameworks!
pod 'StickyButton', '~> 1.0'
然后运行安装命令
$ pod install
手动
只需将《StickyButton》文件夹中的所有内容添加到您的项目中。
用法
界面构建器
全局管理
如果您想在所有应用的视图上显示粘性按钮,可以使用以下的全局和共享实例。
StickyButton.global.button.addItem(title: "Item 1", icon: UIImage(named: "icon"), handler: nil)
StickyButton.global.button.addItem(title: "Item 2", icon: UIImage(named: "icon"), handler: nil)
StickyButton.global.show()
如果您想隐藏某些视图控制器中的按钮,只需在viewDidLoad()
方法中调用StickyButton.global.hide()
即可。
通过代码
let stickyButton = StickyButton(size: 80)
view.addSubview(stickyButton)
stickyButton.addItem(title: "Hello", icon: UIImage(named: "icon1"), handler: nil)
stickyButton.addItem(title: "Wold", icon: UIImage(named: "icon2")) { item in
// action goes here
}
自定义
您可以直接从按钮中自定义按钮外观、项目以及展开背景。以下所有属性及其默认值。
stickyButton.size = 80
stickyButton.horizontalMargin = 20
stickyButton.bottomMargin = 20
stickyButton.itemsSpacing = 8
stickyButton.buttonTintColor = .white
stickyButton.buttonBackgroundColor = UIColor(red: 31/255.0, green: 180/255.0, blue: 246/255.0, alpha: 1)
stickyButton.overlayViewBackgroundColor = UIColor.black.withAlphaComponent(0.5)
stickyButton.buttonImage = UIImage(named: "plus")
stickyButton.closeButtonImage = UIImage(named: "cross")
stickyButton.rotationDegree = 45
stickyButton.shadowRadius = 3
stickyButton.shadowOffset = CGSize(width: 0, height: 2)
stickyButton.shadowOpacity = 0.4
stickyButton.shadowColor = .black
stickyButton.autoCloseOnBackgroundTap = true
stickyButton.showMenuWhenEmpty = true
stickyButton.animateEmpty = true
stickyButton.showOnTopOfKeyboard = true
stickyButton.itemSize = 50
stickyButton.itemIconTintColor = nil
stickyButton.itemIconBackground = .white
stickyButton.itemTitleTextColor = .darkGray
stickyButton.itemTitleBackground = .white
stickyButton.itemTitleFontName = "Helvetica"
stickyButton.itemTitleFontSize = 13
stickyButton.itemTitleOffset = 20
委托
您可以使用StickyButtonDelegate
协议来处理StickyButton
事件。
func stickyButtonShouldShowItems() -> Bool
func stickyButtonWillShowItems()
func stickyButtonDidShowItems()
func stickyButtonShouldHideItems() -> Bool
func stickyButtonWillHideItems()
func stickyButtonDidHideItems()
func stickyButtonShouldChangeSide() -> Bool
func stickyButtonWillChangeSide()
func stickyButtonDidChangeSide()
待办
✅ 添加委托支持- 添加显示菜单的不同动画
- 单元测试和UI覆盖率
作者
Achref Marzouki https://github.com/ach-ref
许可证
StickyButton
遵从MIT许可证。有关更多信息,请参阅LICENSE文件。