AAFragmentManager 2.1

AAFragmentManager 2.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最近发布2019年6月
SPM支持 SPM

工程师 Ahsan Ali维护。



  • 作者:
  • 工程师 Ahsan Ali

目录

#AAFragmentManager

Swift 4.0 Carthage compatible CocoaPods License MIT Build Status License MIT CocoaPods

##描述

AAFragmentManager 是一个子视图管理器,负责在 UIView 中添加子视图,设计用于在带有动画的子视图控制器之间轻松切换。

##演示

要运行示例项目,首先克隆仓库,然后从 Example 目录中运行 pod install

##要求

  • iOS 8.0+
  • Xcode 8.0+

安装

AAFragmentManager 可通过 CocoaPods、Carthage 或手动安装。

##CocoaPods

AAFragmentManager 通过 CocoaPods 提供。要安装 CocoaPods,运行

$ gem install cocoapods

然后创建包含以下内容的 Podfile

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

target '<Your Target Name>' do
pod 'AAFragmentManager', '~> 2.0'
end

最后,运行以下命令进行安装

$ pod install

##Carthage

要安装 Carthage,运行(使用 Homebrew)

$ brew update
$ brew install carthage

然后将以下行添加到您的 Cartfile 中

github "EngrAhsanAli/AAFragmentManager" "master"

然后导入所有使用该库的文件中

import AAFragmentManager

##手动安装

如果您不打算使用上述提到的任何依赖项管理工具,您可以通过将 Classes 文件夹中的文件添加到项目中来手动将 AAFragmentManager 集成到项目中。

入门指南

## 创建您的fragment管理器

创建一个UIView并将类设置为AAFragmentManager。为该视图创建一个IBOutlet

@IBOutlet weak var childView: AAFragmentManager!

// Customize the replace animations with the instance
childView.nextTransition = kCATransitionFromTop
childView.prevTransition = kCATransitionFromBottom

您需要设置所有子视图的标识符,并创建一个UIViewController数组以传递给AAFragmentManager

## 配置您的子视图

按照以下方式获取特定storyboard中的子视图控制器

let vcs = AAFragmentManager.getViewControllers(withIds: #Array_of_Identifiers#, storyboard: #Storyboard_Name#)

您可以使用UIViewController数组初始化AAFragmentManager

childView.initManager(viewControllers: #Array_of_ViewController#)

您可以通过提供父视图控制器实例和标识符来在任何位置初始化AAFragmentManager

extension AAFragmentManager {
    static let instance_1 = AAFragmentManagerInstance("SampleIdentifier")
}

childView.initManager(viewControllers: #Array_of_ViewController#, parentViewController: #Parent_View_Controller#, identifier: #Instance_ID_String#)

您可以使用AAFragments的数组初始化AAFragmentManager

extension AAFragmentManager {
    static let id_frag_1 = AAFragment("ChlidVC1", storyboard: "Main")
    static let id_frag_2 = AAFragment("ChlidVC2", storyboard: "Main")
}

childView.initManager(fragments: #Array_of_AAFragment#)

您可以通过提供AAFragments的数组和父视图控制器实例以及标识符来在任何位置初始化AAFragmentManager

extension AAFragmentManager {
    static let instance_1 = AAFragmentManagerInstance("SampleIdentifier")
}

childView.initManager(fragments: #Array_of_AAFragment#, parentViewController: #Parent_View_Controller#, identifier: #Instance_ID_String#)

## 获取任何子视图控制器

您可以通过索引访问来获取任何子视图控制器

let demoFragment = childView.getFragment(withIndex: 0) as! Fragment1
demoFragment.delegate = self // sets for some callback

您可以通过AAFragments访问来获取任何子视图控制器

extension AAFragmentManager {
    static let id_frag_1 = AAFragment("ChlidVC1", storyboard: "Main")
}

let demoFragment = childView.getFragment(fragment: #AAFragment#) as! Fragment1
demoFragment.delegate = self // sets for some callback

如果需要,您可以在任何地方获取静态实例

extension AAFragmentManager {
    static let id_frag_1 = AAFragment("ChlidVC1", storyboard: "Main")
    static let vc_frag_1 = id_frag_1.viewsController as! Fragment1
}

AAFragmentManager.vc_frag_1.clickAction(self)

请注意,如果传递无效索引,getFragment方法可以返回nil

## 在子视图之间切换

您可以通过next()和previous()方法安全地切换子视图控制器!

// replace with next fragment
childView.previous()
// replace with previous fragment
childView.next()

您可以使用单行代码切换子视图控制器

// replace fragment by index
    childView.replace(withIndex: index)

// replace fragment by AAFragment
    childView.replace(withfragment: .id_frag_1)

使用静态方法获取任何AAFragmentManager的实例

extension AAFragmentManager {
    static let instance_1 = AAFragmentManagerInstance("SampleIdentifier")
}

// Get the instance
let manager = AAFragmentManager.getInstance(withIdentifier: .instance_1)

// Gets the parent view controller instance
let parent = manager.parentViewController

# 贡献与许可

AAFragmentManager遵循MIT许可。有关更多信息,请参阅LICENSE文件。

欢迎拉取请求!最佳贡献将包括在典型应用程序生命周期中阻塞主线程的已知的类/方法替代或配置。

如果您想在应用程序中使用AAFragmentManager,请发送电子邮件至Engr. Ahsan Ali