NeumorphismTab 是带有 Neumorphism 设计的自定义 TabBarController。
功能
- 实现具有 Neumorphism 的自定义标签。
- UIView 扩展,给任何视图添加 Neumorphism 阴影。
要求
- Xcode 11.0 或更高版本
- iOS 11 或更高版本
- Swift 5.1
安装
Carthage
如果您使用 Carthage,只需将 NeumorphismTab 添加到您的 Cartfile
github "touyou/NeumorphismTab"
CocoaPods
NeumorphismTab 通过 CocoaPods 提供。要安装,只需将以下行添加到您的 Podfile
pod 'NeumorphismTab'
Swift 包管理器
NeumorphismTab 通过 SwiftPM
提供,创建 Package.swift
并添加 dependencies
值。
dependencies: [
.package(url: "https://github.com/touyou/NeumorphismTab.git", from: "0.9.6")
]
另见:[GitHub - j-channings/swift-package-manager-ios: 使用 SPM v4 管理 iOS 依赖的示例](https://github.com/j-channings/swift-package-manager-ios)
或您可以使用 Xcode 11 中的基于 GUI 的 SPM。
使用方法
基本阴影模式标签
像这样。
代码如下。
import UIKit
import NeumorphismTab
class DemoTabBarController: NeumorphismTabBarController {
override func setupView() {
let color = UIColor(hex: "C1D2EB")
let home = NeumorphismTabBarItem(icon: UIImage(systemName: "house.fill")!, title: "Home")
let favorite = NeumorphismTabBarItem(icon: UIImage(systemName: "heart.fill")!, title: "")
view.backgroundColor = color
let homeViewController: ViewController = {
let viewController = ViewController.instantiate()
viewController.view.backgroundColor = color
return viewController
}()
let favoriteViewController: UIViewController = {
let viewController = UIViewController()
viewController.view.backgroundColor = color
return viewController
}()
setTabBar(items: [home, favorite])
viewControllers = [homeViewController, favoriteViewController]
}
}
NeumorphismTabBarController 需要在所有视图和 ViewControllers 中使用相同的背景颜色。特别是颜色的亮度应该在 0.18 到 0.88 之间。
将阴影模式添加到任何视图
addNeumorphismShadow(with:)
可以将阴影模式添加到任何视图。`with` 是视图的父级。
let color = UIColor(hex: "C1D2EB")
view.backgroundColor = color
childView.backgroundColor = color
childView.layer.cornerRadius = childView.bounds.width / 2
childView.layer.maskedCorners = [.layerMaxXMaxYCorner, .layerMaxXMinYCorner, .layerMinXMaxYCorner]
childView.addNeumorphismShadow(with: view)
可重写的方法和属性
var tabHorizontalMargin: CGFloat
如果想要调整水平标签的边缘,则需要重写此属性。
var tabVerticalMargin: CGFloat
如您想调整底部标签页的边距,则可覆盖它。
func setupView()
您必须覆盖它,并通过在此处调用setTabBar方法来设置ViewControllers和标签页。
func switchedTab(to toIndex: Int)
如果您想实现当切换标签页时的某些功能,则可以覆盖它。
其他便捷属性、方法和扩展
backgroundColor
(在 NeumorphismTabBarController
中)
在此设置颜色后,可以用此颜色重置圆角阴影颜色。
StoryboardInstantiable
协议和 instantiate()
方法
当您使用 NeumorphismTabBarController 时,您应通过代码来实例化 ViewControllers,因为在 setupView
方法中可以设置它。《StoryboardInstantiate》协议使您能够轻松使用 Storyboard 并通过代码进行实例化。
您应该这样编写
extension ViewController: StoryboardInstantiable {}
然后你应该创建一个新的Storyboard,命名为ViewController的名称(例如:ViewController.storyboard
),并布置布局并设置is initial view controller
为真。现在你可以这样实例化ViewController:
let viewController = ViewController.instantiate()
十六进制颜色初始化器
您可以使用十六进制字符串初始化UIColor。如果您使用它,则不要包含#
。
许可证
NeumorphismTab遵从MIT许可证。有关更多信息,请参阅LICENSE文件。