DMPagerViewController 简单使用

官方给予的使用方法

使用方法:
使用CocoaPods,将以下添加只Podfile: 
pod "DMPagerViewController" 

在制定的VC中添加属性和delegate 
@class DMPagerNavigationBarItem; 

@interface TestViewController : UIViewController  
@property (nonatomic,strong) DMPagerNavigationBarItem *pagerObj; 

VC的m文件中实现: 
- (DMPagerNavigationBarItem *)pagerItem { 
 return self.pagerObj; 
} 

在AppDelegate中制定各个VC: 
TestViewController *vc1 = [[TestViewController alloc] initWithText:@"Page #1" backgroundColor:bkVC1]; 
 vc1.pagerObj = [DMPagerNavigationBarItem newItemWithText: [[NSAttributedString alloc] initWithString:@"HOME" attributes:textAttributes] 
              andIcon: [UIImage imageNamed:@"rchat"]]; 
 vc1.pagerObj.renderingMode = DMPagerNavigationBarItemModeTextAndImage; 
vc2... 
vc3... 

初始化pagerController: 
self.pagerController = [[DMPagerViewController alloc] initWithViewControllers: @[vc1,vc2,vc3]]; 

self.window.rootViewController = self.pagerController; 
 [self.window makeKeyAndVisible];


如何在tabBar中某个视图控制器中添加该效果呢?


1、通过cocoapods导入库
pod "DMPagerViewController" 
2、AppDelegate.m文件中导入
#import "TabBarViewController.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    TabBarViewController *tab = [[TabBarViewController alloc]init];
    
    self.window.rootViewController = tab;
    
    self.window.backgroundColor = [UIColor whiteColor];
    return YES;
}

3、在tabBar中子视图控制器InformationViewController中实现该效果

//InformationViewController.h文件
//导入头文件
#import "ParentViewController.h"
#import <DMPagerViewController/DMPagerViewController.h>
@interface InformationViewController : BaseViewController

@property (strong, nonatomic) DMPagerViewController	*pagerController;

@end
//InformationViewController.m文件
- (void)viewDidLoad {
    [super viewDidLoad];
    //不让scrollView自适应,不写默认为yes,scrollView可能不按照我们的期望布局
    //这个属性巨坑,因为这个属性没有设置,导致我调了一下午的程序,看了http://blog.csdn.net/hmt20130412/article/details/34523235这篇文章之后,才恍然大悟
    self.automaticallyAdjustsScrollViewInsets = NO;
    [self createControllers];
}

-(void)createControllers
{
    NSArray *titles = @[@"最新",@"订阅",@"新车",@"试驾",@"新闻",@"图趣",@"导购",@"优惠",@"视频"];
    NSArray *controllers = @[@"LatestViewController",@"SubscribeViewController",@"NewCarViewController",@"DriveViewController",@"NewsViewController",@"PictureViewController",@"ShopGuideViewController",@"PreferentialViewController",@"VideoViewController"];
    NSMutableArray *controller = [[NSMutableArray alloc]init];
    
    NSDictionary *textAttributes = @{ NSFontAttributeName : [UIFont systemFontOfSize:16.0f],NSForegroundColorAttributeName : [UIColor blackColor]};
    //动态创建子视图控制器
    for (NSInteger i = 0; i < controllers.count; i++) {
        
        NSString *className = controllers[i];
        
        Class vcClass = NSClassFromString(className);
        
        ParentViewController *vc = [[vcClass alloc]initWithText:titles[i] backgroundColor:[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0f]];
        
        vc.pagerObj = [DMPagerNavigationBarItem newItemWithText:[[NSAttributedString alloc] initWithString:titles[i] attributes:textAttributes] andIcon:nil];
        
        //设置导航的模式
        vc.pagerObj.renderingMode = DMPagerNavigationBarItemModeOnlyText;
        
        [controller addObject:vc];
    }
    // Create pager with items
    self.pagerController = [[DMPagerViewController alloc]initWithViewControllers:controller];
    
    self.pagerController.navigationBarHeight = 25;
    //设置滚动范围、并且纵向无法滚动
    self.pagerController.scrollView.contentSize = CGSizeMake(self.view.frame.size.width*controller.count, 0);
    
    // Setup pager's navigation bar colors
    UIColor *activeColor = [UIColor colorWithRed:213/255.0 green:15/255.0 blue:37/255.0 alpha:1.0f];
    UIColor *inactiveColor = [UIColor colorWithRed:.84 green:.84 blue:.84 alpha:1.0];
    self.pagerController.navigationBar.inactiveItemColor = inactiveColor;
    self.pagerController.navigationBar.activeItemColor = activeColor;
    
    //设置导航风格
    /*
     DMPagerNavigationBarStyleOnBounds		= 40,
     DMPagerNavigationBarStyleClose			= 30,
     DMPagerNavigationBarStyleNormal			= 20,
     DMPagerNavigationBarStyleFar			= 10,
     DMPagerNavigationBarStyleDefault		= 0,
     DMPagerNavigationBarStyleCloseToEachOne = -40
     */
    self.pagerController.navigationBar.style = DMPagerNavigationBarStyleClose;
    //隐藏导航
//    self.pagerController.useNavigationBar = NO;
    
    //在自定义的tabBar自定义视图控制器中,添加子视图控制器self.pagerController
    [self addChildViewController:self.pagerController];

    //添加子视图控制器视图到父视图中
    [self.view addSubview:self.pagerController.view];
}

//希望我的分享对大家有用,也希望多多交流,共同进步~

效果图

110702_zwFj_2430056.png

110703_v36g_2430056.png

110704_32Hd_2430056.png



转载于:https://my.oschina.net/u/2430056/blog/492248

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值