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.
UINavigationController *mainNav = [[UINavigationController alloc] initWithRootViewController:mainVC];
MedicalCircleViewController *medicalVC = [[MedicalCircleViewController alloc] init];
medicalVC.tabBarItem.title = MAIN_STUDY;
medicalVC.
medicalVC.tabBarItem.selectedImage = [UIImage imageNamed:@"study_high"];
UINavigationController *medicalNav = [[UINavigationController alloc]initWithRootViewController:medicalVC];
InformationViewController *infoVC
= [[InformationViewController alloc]
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;