MSMatrixController 0.1

MSMatrixController 0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

Marco Sero 维护。



  • 作者:
  • Marco Sero

一个视图控制器组织组件,基于手势的 2D 矩阵。

image

工作原理

将 Xcode 项目的 MSMatrixController 文件夹复制到项目中。

在您的前缀或应用代理中导入 MSMatrixController.h

在一个矩阵内组织您的视图控制器,为每个控制器指定其行和列。然后在 MSMatrixController 的一个实例中添加它们。

image

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  UIStoryboard *currentStoryboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil];

  UIViewController *initialViewController = self.window.rootViewController;
  MSMatrixMasterViewController *matrixMasterViewController = [[MSMatrixMasterViewController alloc] initWithFrame:initialViewController.view.frame];

  UIViewController *position00ViewController = [currentStoryboard instantiateViewControllerWithIdentifier:@"position00"];
  position00ViewController.row = 0;
  position00ViewController.col = 0;

  UIViewController *position01ViewController = [currentStoryboard instantiateViewControllerWithIdentifier:@"position01"];
  position01ViewController.row = 0;
  position01ViewController.col = 1;

  UIViewController *position11ViewController = . . . . 

  NSArray *controllers = @[position00ViewController, position01ViewController, position11ViewController, position12ViewController,
position21ViewController, position22ViewController, position23ViewController, position24ViewController, position14ViewController];

  [matrixMasterViewController setControllers:controllers];

  self.window.rootViewController = cartesianMasterViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

功能

对于每个控制器,您可以访问其邻域

controller.leftViewController
controller.rightViewController
controller.topViewController
controller.bottomViewController

和矩阵主控制器

controller.matrixViewController

导航控制器的矩阵默认方式是通过滑动手势,但也可以通过编程移动。

- (void)moveLeftAnimated:(BOOL)animated;
- (void)moveRightAnimated:(BOOL)animated;
- (void)moveUpAnimated:(BOOL)animated;
- (void)moveDownAnimated:(BOOL)animated;
- (void)moveLeftAnimated:(BOOL)animated withCompletion:(void (^)(void))completion;
- (void)moveRightAnimated:(BOOL)animated withCompletion:(void (^)(void))completion;
- (void)moveUpAnimated:(BOOL)animated withCompletion:(void (^)(void))completion;
- (void)moveDownAnimated:(BOOL)animated withCompletion:(void (^)(void))completion;

回调和 MSMatrixControllerDelegate

目前,MSMatrixController 在视图出现/消失时使用默认的 UIKit 回调

- (void)viewDidAppear:(BOOL)animated;    
- (void)viewDidDisappear:(BOOL)animated;

还声明了代理 MSMatrixControllerDelegate

- (void)willMoveToViewController:(UIViewController *)viewController atPosition:(Position)position;
- (void)didMoveToViewController:(UIViewController *)viewController atPosition:(Position)position;

鸣谢

灵感来源于 CircleMBSpacialViewController

联系

Marco Sero

许可证

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