snapchat tablebar切換方式實現

國外的一些app總是引領著國內的潮流。snapchat上面的交互和動畫總是走在新穎時尚的前沿,整體框架交互順暢,動畫順滑自然,在對產品體驗更嚴苛的北美市場,依然深受年輕一代的喜愛。今天,我們來實現類似snapchat底部導航欄變魔術一樣的切換效果,至于動畫,因為太花時間,就不展開模仿,這里只實現snapchat切換方式。
如下動畫


snapchat_tablebar.gif

1.建立常規(guī)maintable bar的數組。將三個主頁面的控制器丟進去,先實現普通的table bar切換。代碼如下:

- (void)initViewControllers {
    FirstPageViewController *firstVC = [[FirstPageViewController alloc] init];
    SecondPageViewController  *secondVC = [[SecondPageViewController alloc] init];
    ThirdPageViewController  *thirdVC = [[ThirdPageViewController alloc] init];
    CameraPageViewController *cameraVC = [[CameraPageViewController alloc] init];
    NSArray *viewControllers = @[firstVC, secondVC, thirdVC];
    NSMutableArray *arrayM = [NSMutableArray arrayWithCapacity:viewControllers.count];
    _mainRootViewControllers = [NSMutableArray arrayWithCapacity:viewControllers.count];
    
    for (int i = 0; i < viewControllers.count; i++) {
        UIViewController *baseVC = viewControllers[i];
        
        [_mainRootViewControllers addObject:baseVC];
        
        [arrayM addObject:baseVC];
    }

    self.viewControllers = arrayM;
    
    //默認進入 around 頁面
    self.selectedIndex = PdMainPageIndexAround;
}

自定義的tabble bar,選中的時候需要根據被選中的index做UI切換:

- (void)setSelectedIndex:(NSUInteger)selectedIndex {
    [_customMainTabBar configSelectIndex:selectedIndex];
    
    [super setSelectedIndex:selectedIndex];
}

進入類似snapchat相機拍照頁面的時候,會present出相機頁面。

#pragma mark - 進入相機拍照頁面
- (void)mainTabBarAroundBtnDidClicked:(PdMainTabBar *)mainTabBar {
    CameraPageViewController *cameraPageVC = [[CameraPageViewCont![tablebar.gif](https://upload-images.jianshu.io/upload_images/3613568-e7ffa2f555276f15.gif?imageMogr2/auto-orient/strip)
roller alloc] init];
    [self presentViewController:cameraPageVC animated:YES completion:nil];
}

自定義table bar的實現,觀察snapchat的切換過程,會發(fā)現,一共三個普通頁面,從左至右為A,B,C。除了中間table bar,命名為Camera,其余地方的table bar只相應一次點擊,不會連續(xù)相應點擊事件,即第一次點擊A顯示A,第二次點擊A的時候還是選中該A頁控制器,不進行切換;點擊中間table bar的時候,第一次點擊之時,會切換到拍照頁面Camera的入口;如果連續(xù)點擊,第二次則進入拍照頁面Camera。如果切換到非中間table bar頁面,則中間table bar又會恢復至初始頁面。如下動畫過程:


tabbarswitch.gif

最后show you the code:
https://github.com/Bigjohn123/tabbarSwitch

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網絡請求組件 FMDB本地數據庫組件 SD...
    陽明AI閱讀 16,205評論 3 119
  • 轉載請注明出處(http://www.itdecent.cn/p/5f538820e370),您的打賞是小編繼續(xù)...
    福later閱讀 29,717評論 8 73
  • 李笑來老師在得到上開通的《通往財富自由之路》是最需要思考和執(zhí)行力的專欄,就像笑來老師本人說的那樣。 在邀請詞中談到...
    柯南教英語閱讀 521評論 0 3
  • 未辜負7月的美好時光,感謝身邊的朋友給的支持與鼓勵,也感謝自己的篤定,給自己最大的擁抱就是加油親愛的! 7月也是暑...
    麗君時光記閱讀 194評論 0 0

友情鏈接更多精彩內容