国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

RDVTabBarController--可自由定制的iOS底部導(dǎo)航控件

2019-11-14 18:11:18
字體:
供稿:網(wǎng)友
  • RDVTabBarController:一個(gè)十分完善的tabBarController,可以自定義角標(biāo)個(gè)數(shù),爽的停不下來。
  • RDVTabBarController地址:RDVTabBarController
  • Demo地址:歡迎Star

說明

  • 此教程是旨在讓你快速入手,如需更加深層次的了解,請直接RDVTabBarController地址分析即可;

使用

pod 'RDVTabBarController'

建議直接CocoaPods管理,對CocoaPods有興趣的童鞋可以戳cocoapods-install-usage

結(jié)構(gòu)

RDVTabBar @interface RDVTabBar : UIView
RDVTabBarController@interface RDVTabBarController : UIViewController 
RDVTabBarItem@interface RDVTabBarItem : UIControl

RDVTabBarController Example Usage其實(shí)已經(jīng)很詳細(xì)了,接下來看初始化

 //VString宏定義,為了就是更好的國際化語言,適配多語言,剛好此Demo也國際化了,可以參看https://github.com/sauchye/dev_notes/issues/4 #define VString(x)      NSLocalizedString(x, nil)
- (void)setupViewControllers{    SYFirstViewController *firstVC = [[SYFirstViewController alloc] init];    SYSecondViewController *secondVC = [[SYSecondViewController alloc] init];    SYThirdViewController *thirdVC = [[SYThirdViewController alloc] init];    firstVC.title = VString(@"Home");    secondVC.title = VString(@"Found");    thirdVC.title = VString(@"Me");    self.firstNav = [[SYBaseNavigationController alloc] initWithRootViewController:firstVC];    self.secondNav = [[SYBaseNavigationController alloc] initWithRootViewController:secondVC];    self.thirdNav = [[SYBaseNavigationController alloc] initWithRootViewController:thirdVC];    [self setViewControllers:@[self.firstNav, self.secondNav, self.thirdNav]];    [self customizeTabBarForController];}
- (void)customizeTabBarForController{    //tabbar 背景圖片 tabbar_background    UIImage *backgroundImage = [UIImage imageNamed:@"tabbar_background"];    //選項(xiàng)卡圖片    NSArray *tabBarItemImages;  	//這里添加tabBar icon圖片    //= @[VString(@"First"), VString(@"Second"),VString(@"Third")];    NSArray *tabBarItemTitles = @[VString(@"Home"), VString(@"Found"), VString(@"Me")];    NSInteger index = 0;    for (RDVTabBarItem *item in [[self tabBar] items])    {        item.titlePositionAdjustment = UIOffsetMake(0, 2.0);        [item setBackgroundSelectedImage:backgroundImage withUnselectedImage:backgroundImage];        UIImage *selectedimage = [UIImage imageNamed:[NSString stringWithFormat:@"%@_selected",[tabBarItemImages objectAtIndex:index]]];        UIImage *unselectedimage = [UIImage imageNamed:[NSString stringWithFormat:@"%@_normal",[tabBarItemImages objectAtIndex:index]]];        [item setFinishedSelectedImage:selectedimage withFinishedUnselectedImage:unselectedimage];        [item setTitle:[tabBarItemTitles objectAtIndex:index]];        item.selectedTitleAttributes = @{                                         NSFontAttributeName: [UIFont boldSystemFontOfSize:12],                                         NSForegroundColorAttributeName:kNAVIGATION_BAR_COLOR,                                         };        item.unselectedTitleAttributes = @{                                           NSFontAttributeName: [UIFont boldSystemFontOfSize:12],                                           NSForegroundColorAttributeName:RGB(217, 217, 217),                                           };        [item setTitle:[tabBarItemTitles objectAtIndex:index]];        index++;    }}

這樣你的tabBar基本搭建好了,但是還需要完善一些,比如,角標(biāo)設(shè)置,push隱藏等。

  • Push隱藏tabBar,你只需要這樣即可

objective-c - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [[self rdv_tabBarController] setTabBarHidden:YES animated:YES]; }

  • 設(shè)置角標(biāo)數(shù)

objective-c [[self rdv_tabBarItem] setBadgeValue:@"3"];

  • RDVTabBarControllerDelegate,相信你看就會明白,好的方法命名很重要啊~

``` objective-c
/**

  • Asks the delegate whether the specified view controller should be made active.
    */
  • (BOOL)tabBarController:(RDVTabBarController )tabBarController shouldSelectViewController:(UIViewController )viewController;

/**

  • Tells the delegate that the user selected an item in the tab bar.
    */
  • (void)tabBarController:(RDVTabBarController )tabBarController didSelectViewController:(UIViewController )viewController;
    ```

  • 還有需要多等待你去發(fā)現(xiàn)...


結(jié)語

RDVTabBarController是一個(gè)很棒的第三方tabBarController,值得我們學(xué)習(xí)和思考。

  • 相比傳統(tǒng)第三方,你會發(fā)現(xiàn)可以很好的定制角標(biāo),這是極好的,當(dāng)然你也可以自定義;
  • 但是不能定義中間凸起的tabBar,好早之前去哪兒就是中間凸起一個(gè)tabBar,不過現(xiàn)在去哪兒也改成傳統(tǒng)的tabBar了;

--

本文,由我們 iOS122 的小伙伴 @Sauchye?供稿,更多討論,參見: http://www.ios122.com/tag/rdvtabbarcontroller/


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 益阳市| 敦化市| 黄冈市| 新余市| 定边县| 文昌市| 宜宾市| 赫章县| 南江县| 凯里市| 泰顺县| 牙克石市| 阜城县| 湟源县| 汉寿县| 华池县| 茶陵县| 安国市| 项城市| 兴和县| 德保县| 卢氏县| 湟源县| 六枝特区| 会宁县| 阿拉善左旗| 新晃| 牙克石市| 三河市| 沁水县| 凌源市| 五原县| 林周县| 浏阳市| 扬州市| 合作市| 繁昌县| 花垣县| 类乌齐县| 宜宾县| 昌宁县|