短视频系统开发: 仿抖音的短视频滑动导航控制器

下面说一下在短视频开发中,仿抖音的短视频滑动导航控制器的总体流程:

将ViewController.view加入到下方的ScrollView中
根据数据源Titles对上方TabBar中CollectionCell上的Label赋值
处理下方ScorllView与上方TabBar之间的协同问题
具体代码实现如下:

CustomPagerController.h

#import "TYTabButtonPagerController.h"
@interface CustomPagerController : TYTabButtonPagerController
 
@end


CustomPagerController.m

#import "CustomPagerController.h"
 
#import "RecommendVideoVC.h"
#import "HotVideoVC.h"
#import "NearByVideoVC.h"
 
//Alan change
@interface CustomPagerController(){
    
}
@property(nonatomic,strong)UIButton *search;
@property(nonatomic,strong)NSArray *infoArrays;
@end
@implementation CustomPagerController
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.hidden = YES;
 
}
-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    
}
-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
}
 
- (void)viewDidLoad {
    [super viewDidLoad];
 
    self.navigationController.navigationBarHidden = YES;
    [self.view addSubview:self.search];
    self.adjustStatusBarHeight = YES;
    self.cellSpacing = 8;
    self.infoArrays = [NSArray arrayWithObjects:@"推荐",@"热门",@"附近",nil];
    [self setBarStyle:TYPagerBarStyleProgressView];
    [self setContentFrame];
    
}
 
#pragma mark - TYPagerControllerDataSource
- (NSInteger)numberOfControllersInPagerController {
    return self.infoArrays.count;
}
- (NSString *)pagerController:(TYPagerController *)pagerController titleForIndex:(NSInteger)index {
    return self.infoArrays[index];
}
- (UIViewController *)pagerController:(TYPagerController *)pagerController controllerForIndex:(NSInteger)index {
 
    if(index == 0){
        //推荐
        RecommendVideoVC *videoVC = [[RecommendVideoVC alloc]init];
        NSString *url = [purl stringByAppendingFormat:@"?service=Video.getRecommendVideos&uid=%@&type=0",[Config getOwnID]];
        videoVC.requestUrl = url;
 
        return videoVC;
    } else if(index == 1) {
        //热门
        HotVideoVC *videoVC= [[HotVideoVC alloc]init];
        videoVC.ismyvideo = 0;
        NSString *url = [purl stringByAppendingFormat:@"?service=Video.getVideoList&uid=%@&type=0",[Config getOwnID]];
        videoVC.url = url;
 
        return videoVC;
    }else if(index == 2) {
        //附近
        NearByVideoVC *videoVC= [[NearByVideoVC alloc]init];
 
        return videoVC;
    }else{
       
        return nil;
    }
}
#pragma mark - override delegate
- (void)pagerController:(TYTabPagerController *)pagerController configreCell:(TYTabTitleViewCell *)cell forItemTitle:(NSString *)title atIndexPath:(NSIndexPath *)indexPath {
   [super pagerController:pagerController configreCell:cell forItemTitle:title atIndexPath:indexPath];
}
- (void)pagerController:(TYTabPagerController *)pagerController didSelectAtIndexPath:(NSIndexPath *)indexPath{
   
    NSLog(@"wmplayer:===6.28===%ld",(long)indexPath.row);
}
- (void)pagerController:(TYTabPagerController *)pagerController didScrollToTabPageIndex:(NSInteger)index{
   
    
}
#pragma mark - set/get
-(UIButton *)search {
 
    if (!_search) {
        _search = [UIButton buttonWithType:0];
        [_search setImage:[UIImage imageNamed:@"home_search"] forState:0];
        _search.frame = CGRectMake(_window_width-50, 20+statusbarHeight, 40, 40);
        [_search addTarget:self action:@selector(doSearchBtn) forControlEvents:UIControlEventTouchUpInside];
    }
    return _search;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值