MCPanelViewController 0.3

MCPanelViewController 0.3

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

Matthew Cheok 维护。



  • Matthew Cheok

这是一个 iOS 的下拉面板控制,具有模糊背景和屏幕边缘激活手势。

屏幕截图

Screenshot

安装

将以下代码添加到您的 CocoaPods Podfile

pod 'MCPanelViewController'

或者作为 git 子模块克隆

或者直接将 MCPanelViewController 文件夹的文件拷贝到您的项目中

使用 MCPanelViewController

首先,设置您的视图控制器以显示在面板视图控制器中,然后如以下示例所示实例化 MCPanelViewController

UIViewController *controller = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LightPanelViewControllerInNavigationController"];

MCPanelViewController *panelController = [[MCPanelViewController alloc] initWithRootViewController:controller];

或者使用 UIViewController 上的便捷方法

MCPanelViewController *panelController = [controller viewControllerInPanelViewController];

调整视图控制器上的 preferredContentSize 以设置面板的所需宽度(默认为 320 个点)。高度被忽略

controller.preferredContentSize = CGSizeMake(440, 0);

要程序性地打开面板,例如从按钮

[panelController presentInViewController:self.navigationController withDirection:MCPanelAnimationDirectionRight];

或者使用 UIViewController 上的便捷方法

[self.navigationController presentPanelViewController:panelController withDirection:MCPanelAnimationDirectionRight];

您也可以使用 MCPanelAnimationDirectionLeft。在全屏视图控制器中呈现控制器,例如顶级导航控制器

以此方式从呈现的视图控制器中消失

[self.panelViewController dismiss];

可选配置

关闭背景蒙版效果

panelController.masking = NO;

关闭面板上的滑动手势

panelController.panningEnabled = NO;

调整面板的背景样式

panelController.backgroundStyle = MCPanelBackgroundStyleTinted;
panelController.tintColor = [UIColor colorWithRed:0.7 green:0.7 blue:1 alpha:1];

您还可以使用背景样式 MCPanelBackgroundStyleLightMCPanelBackgroundStyleExtraLightMCPanelBackgroundStyleDark 来匹配 iOS 7 内置样式。如果样式不是 MCPanelBackgroundStyleTinted,则忽略 tintColor 属性。

屏幕边缘手势

要配置顶级视图控制器上的屏幕边缘手势,使用以下在 UIViewController 上的便捷方法

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self.navigationController addGestureRecognizerToViewForScreenEdgeGestureWithPanelViewController:panelController withDirection:MCPanelAnimationDirectionRight];
}

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];

    [self.navigationController removeGestureRecognizersFromViewForScreenEdgeGestureWithPanelViewController:panelController];
}

许可证

MCPanelViewController 在 MIT 许可下。