1. 程式人生 > >iOS 三種側滑選單效果對比詳解

iOS 三種側滑選單效果對比詳解

- (void)mainTabBar

{

 AppDelegate *app = (AppDelegate *)[UIApplication sharedApplication].delegate;

 HomeViewController *mainVC = [[HomeViewController alloc] init];

    mainVC.tabBarItem.title = MAIN_PAGE;

    mainVC.tabBarItem.image = [UIImage imageNamed:@"main_page_high"];

    mainVC.tabBarItem.

selectedImage = [UIImage imageNamed:@"main_page"];

 UINavigationController *mainNav = [[UINavigationController alloc] initWithRootViewController:mainVC];

 MedicalCircleViewController *medicalVC = [[MedicalCircleViewController alloc] init];

    medicalVC.tabBarItem.title = MAIN_STUDY;

    medicalVC.

tabBarItem.image = [UIImage imageNamed:@"study"];

    medicalVC.tabBarItem.selectedImage = [UIImage imageNamed:@"study_high"];

 UINavigationController *medicalNav = [[UINavigationController alloc]initWithRootViewController:medicalVC];

 InformationViewController *infoVC = [[InformationViewController alloc]

 init];

    infoVC.tabBarItem.title = MAIN_MEDICAL;

    infoVC.tabBarItem.image = [UIImage imageNamed:@"medical_exam"];

    infoVC.tabBarItem.selectedImage = [UIImage imageNamed:@"medical_exam_high"];

 UINavigationController *infoNav = [[UINavigationController alloc] initWithRootViewController:infoVC];

 MineViewController *mineVC = [[MineViewController alloc] init];

    mineVC.tabBarItem.title = MAIN_MINE;

    mineVC.tabBarItem.image = [UIImage imageNamed:@"mine"];

    mineVC.tabBarItem.selectedImage = [UIImage imageNamed:@"mine_high"];

 UINavigationController *mineNav = [[UINavigationController alloc] initWithRootViewController:mineVC];

 UITabBarController *tabBarControl = [[UITabBarController alloc] init];

    tabBarControl.viewControllers = @[mainNav,medicalNav,infoNav,mineNav];

    tabBarControl.tabBar.barStyle = UIBarStyleDefault;

    tabBarControl.view.backgroundColor = [UIColor whiteColor];

    tabBarControl.tabBar.tintColor = [UIColor colorWithHexString:@"#238E23"]; // 設定高亮顏色

    tabBarControl.selectedIndex = self.selectedIndex;

 //app.window.rootViewController = tabBarControl;

    /**

     *

     * @ 側滑選單

     * @ 效果一

     * @ 傳統效果

     *

     */

 DDMenuController*ddMenu = [[DDMenuController alloc] initWithRootViewController:tabBarControl];

 SideslipViewController *left = [[SideslipViewController alloc] init];

    ddMenu.leftViewController = left;

 SideslipRightViewController *right = [[SideslipRightViewController alloc] init];

    ddMenu.rightViewController = right;

    app.window.rootViewController = ddMenu;

    /**

     *

     * @ 側滑選單

     * @ 效果二

     * @ 高仿 QQ

     * @ 缺點 : 手勢干擾  導致點選Tab響應不靈敏

     * 

     */

 WWSideslipViewController * slide = [[WWSideslipViewController alloc]initWithLeftView:leftandMainView:tabBarControl andRightView:right andBackgroundImage:[UIImage imageNamed:@"SlidslipGround"]];

 //滑動速度係數

    [slide setSpeedf:0.7];

 //點選檢視是是否恢復位置

    slide.sideslipTapGes.enabled = YES;

    app.window.rootViewController = slide;

}

    /**

     *

     * @ 側滑選單 仿QQ

     * @ 效果三

     * @ 動畫效果

     *

     */

 SideslipViewController *left = [[SideslipViewController alloc] init];

 SideslipRightViewController *right = [[SideslipRightViewController alloc] init];

 RXLSideSlipViewController *RXL = [[RXLSideSlipViewController alloc]initWithContentViewController:tabBarControl leftMenuViewController:leftrightMenuViewController:right];

 //RXL.backgroundImage = [UIImage imageNamed:@"aaa.png"];

 //RXL.delegate = self;

    RXL.menuPreferredStatusBarStyle = 1; // UIStatusBarStyleLightContent

    RXL.contentViewShadowColor = [UIColor blackColor];

    RXL.contentViewShadowOffset = CGSizeMake(0, 0);

    RXL.contentViewShadowOpacity = 0.6;

    RXL.contentViewShadowRadius = 12;

    RXL.contentViewShadowEnabled = NO; // 是否顯示陰影

    RXL.contentPrefersStatusBarHidden = NO;//是否隱藏主檢視的狀態條

    app.window.rootViewController = RXL;