ReachabilityUI 1.0.1

ReachabilityUI 1.0.1

Nodes Agency 维护。



  • Nodes Agency - iOS

Carthage Compatible Plaforms GitHub license

简介

ReachabilityUI 是一个旨在帮助通知用户应用程序与互联网断开连接的框架。

使用 ReachabilityUI,您可以注册一个 ReachabilityListener 实例,以便在连接断开时收到通知。这可以用来调整应用程序的界面,以确保内容不会重叠横幅,或者在实际断开连接时执行任何其他操作。

请参考演示项目,了解如何在类似于 Nodes VIPER 架构中集成 ReachabilityUI 框架。

📝要求

  • iOS 11
  • Swift 4.0+

📦安装

Carthage

github "nodes-ios/Reachability-UI"

Cocoapods

pod "Reachability-UI"

💻用法

初始化 ReachabilityUI 依赖项

遵守 HasReachabilityListenerRepository 并创建一个 ReachabilityUIManager 实例

import UIKit
import ReachabilityUI

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    public var reachabilityListenerFactory: ReachabilityListenerFactoryProtocol!

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        reachabilityListenerFactory = ReachabilityUIManager()

        return true
    }
}

extension AppDelegate: HasReachabilityListenerRepository {}

初始化可达性UI横幅

要启用您的视图中可达性横幅,请将以下代码片段添加到您的AppDelegate.swift

private func addReachability() {
    // create a ReachabilityConfiguration instance  
    let configuration = ReachabilityConfiguration(title: "Connected",
                                                  noConnectionTitle: "No Connection",
                                                  options: nil)

    // create the ReachabilityCoordinator and pass it along the previously
    // created ReachabilityConfiguration together with the ReachabilityListenerFactoryProtocol
    let coordinator = ReachabilityCoordinator(
        window: window,
        reachabilityListenerFactory: reachabilityListenerFactory,
        configuration: configuration
    )
    reachabilityCoordinator = coordinator
    coordinator.start()
}

监听可达性变化

要接收关于连接状态变化的通知,您必须创建一个监听器并开始监听,以接收关于连接状态变化的通知。

private var listener: ReachabilityListenerProtocol!

func subscribe() {
    listener = reachabilityListenerFactory.makeListener()
    listener.listen { [weak self] (isConnected) in
        // TODO: react to change in connected state
    }
}

更改配置

您可以在可达性配置中更改各种选项,以根据您的需求定制组件。

 let configuration = ReachabilityConfiguration(title: "Connected",
                                               noConnectionTitle: "No Connection",
                                               options: [.appearance : ReachabilityConfiguration.Appearance.bottom,
                                                         .appearanceAdjustment : CGFloat(-100),
                                                         .animation : ReachabilityConfiguration.Animation.slideAndFadeInOutFromBottom])

选项字典中可以使用以下键

  • .titleColor(必须是UIColor
  • .noConnectionTitleColor(必须是UIColor
  • .noConnectionBackgroundColor(必须是UIColor
  • .backgroundColor(必须是UIColor
  • .height(必须是CGFloat
  • .font(必须是UIFont
  • .textAlignment(必须是NSTextAlignment
  • .animation(必须是可达性配置.Animation
  • .appearance(必须是可达性配置.Appearance
  • .appearanceAdjustment(必须是CGFloat

如果选项设置为nil,将使用默认选项。设置的任何选项将覆盖默认状态。

👥致谢

使用❤️Nodes

可达性逻辑是由Marco Santarossa在https://medium.com/@marcosantadev/network-reachability-with-swift-576ca5070e4b中展示的

📄许可证

可达性-UI可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。