NeumorphismTab 0.9.6

NeumorphismTab 0.9.6

touyou 维护。



  • touyou

NeumorphismTab

Platform Language Carthage
Swift Package Manager Version License

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。

使用方法

基本阴影模式标签

像这样。

NeumorphismTab

代码如下。

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文件