DLSlideView

DLSlideView对常见的顶部Tab页点击、滑动分页做了封装。 它使用基于ViewController的container特性(而不是scrollview)来管理各个子页面,保留原始的系统消息,没有隐患。 同时内存模型更优于使用scrollview的方式,理论上可以支持无限分页。

可自定义标签栏:

简介 - 图1

使用方法:

1.初始化DLTabedSlideView

  1. self.tabedSlideView.baseViewController = self;
  2. self.tabedSlideView.tabItemNormalColor = [UIColor blackColor];
  3. self.tabedSlideView.tabItemSelectedColor = [UIColor colorWithRed:0.833 green:0.052 blue:0.130 alpha:1.000];
  4. self.tabedSlideView.tabbarTrackColor = [UIColor colorWithRed:0.833 green:0.052 blue:0.130 alpha:1.000];
  5. self.tabedSlideView.tabbarBackgroundImage = [UIImage imageNamed:@"tabbarBk"];
  6. self.tabedSlideView.tabbarBottomSpacing = 3.0;
  7. DLTabedbarItem *item1 = [DLTabedbarItem itemWithTitle:@"最新" image:[UIImage imageNamed:@"goodsNew"] selectedImage:[UIImage imageNamed:@"goodsNew_d"]];
  8. DLTabedbarItem *item2 = [DLTabedbarItem itemWithTitle:@"最热" image:[UIImage imageNamed:@"goodsHot"] selectedImage:[UIImage imageNamed:@"goodsHot_d"]];
  9. DLTabedbarItem *item3 = [DLTabedbarItem itemWithTitle:@"价格" image:[UIImage imageNamed:@"goodsPrice"] selectedImage:[UIImage imageNamed:@"goodsPrice_d"]];
  10. self.tabedSlideView.tabbarItems = @[item1, item2, item3];
  11. [self.tabedSlideView buildTabbar];
  12. self.tabedSlideView.selectedIndex = 0;

2.实现delegate

  1. - (NSInteger)numberOfTabsInDLTabedSlideView:(DLTabedSlideView *)sender{
  2. return 3;
  3. }
  4. - (UIViewController *)DLTabedSlideView:(DLTabedSlideView *)sender controllerAt:(NSInteger)index{
  5. switch (index) {
  6. case 0:
  7. {
  8. OneViewController *ctrl = [[OneViewController alloc] init];
  9. return ctrl;
  10. }
  11. case 1:
  12. {
  13. TwoViewController *ctrl = [[TwoViewController alloc] init];
  14. return ctrl;
  15. }
  16. case 2:
  17. {
  18. ThreeViewController *ctrl = [[ThreeViewController alloc] init];
  19. return ctrl;
  20. }
  21. default:
  22. return nil;
  23. }
  24. }

类似网易新闻,支持无限页面:

简介 - 图2

使用方法:

1.初始化DLCustomSlideView

  1. DLLRUCache *cache = [[DLLRUCache alloc] initWithCount:6];
  2. DLScrollTabbarView *tabbar = [[DLScrollTabbarView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 34)];
  3. tabbar.tabItemNormalColor = [UIColor blackColor];
  4. tabbar.tabItemSelectedColor = [UIColor redColor];
  5. tabbar.tabItemNormalFontSize = 14.0f;
  6. tabbar.trackColor = [UIColor redColor];
  7. itemArray_ = [NSMutableArray array];
  8. DLScrollTabbarItem *item = [DLScrollTabbarItem itemWithTitle:@"推荐" width:80];
  9. [itemArray_ addObject:item];
  10. for (int i=0; i<10; i++) {
  11. item = [DLScrollTabbarItem itemWithTitle:[NSString stringWithFormat:@"页面%d", i+1] width:50];
  12. [itemArray_ addObject:item];
  13. }
  14. tabbar.tabbarItems = itemArray_;
  15. self.slideView.tabbar = tabbar;
  16. self.slideView.cache = cache;
  17. self.slideView.tabbarBottomSpacing = 5;
  18. self.slideView.baseViewController = self;
  19. [self.slideView setup];
  20. self.slideView.selectedIndex = 0;

2.实现delegate

  1. - (NSInteger)numberOfTabsInDLCustomSlideView:(DLCustomSlideView *)sender{
  2. return itemArray_.count;
  3. }
  4. - (UIViewController *)DLCustomSlideView:(DLCustomSlideView *)sender controllerAt:(NSInteger)index{
  5. PageNViewController *ctrl = [[PageNViewController alloc] init];
  6. int32_t rgbValue = rand();
  7. ctrl.view.backgroundColor = [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16)/255.0 green:((rgbValue & 0xFF00) >> 8)/255.0 blue:(rgbValue & 0xFF)/255.0 alpha:1.0];
  8. ctrl.pageLabel.text = [NSString stringWithFormat:@"%ld", (long)index];
  9. return ctrl;
  10. }