国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 三江| 巩留县| 大洼县| 民县| 习水县| 北流市| 玉田县| 科尔| 洪江市| 进贤县| 贺兰县| 合川市| 巍山| 福泉市| 包头市| 多伦县| 建德市| 平远县| 夹江县| 青阳县| 明溪县| 甘孜| 临澧县| 大庆市| 九寨沟县| 日土县| 炉霍县| 天镇县| 平舆县| 道孚县| 永兴县| 无为县| 永州市| 辰溪县| 宁津县| 同江市| 建瓯市| 怀柔区| 南丰县| 黄石市| 苗栗市|