iOS界面封装(滚动切换选项卡布局)

iOS界面封装(滚动切换选项卡布局)_第1张图片
Untitled.gif

今天要介绍的是最近封装的一个控件,一个类似选项卡的控件,集成了以下功能,
1初始化
(1)只需通过传入一个标题数组,和设置frame ,即可自动动态生成所有的tab,(数组有多少个title 就自动生成多少个tab)一行代码就可集成整个控件
2 功能
(1)点击切换tab(工作,任务,目标)
(2) 左右滚动切换tab
(3) 上滑刷新和下拉加载

3使用
(1)初始化

 _scrollTapViw = [[DTScrollStatusView alloc]initWithTitleArr:@[@"工作",@"任务",@"目标"] andType:ScrollTapTypeWithNavigation];
    _scrollTapViw.scrollStatusDelegate = self;
    [self.view addSubview:_scrollTapViw];

这个控件为了方便使用提供三种初始化方法,大体可以看demo注释
(2)实现代理 :tableview代理
箱式布局中间部分是动态的生成的tableview 可以从左到右如图例,tab 分别为1,2,3
根据不同的tab 在tableview 的代理实现不同的cell;
图例实现的实现tableview 代码如下

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
    if (!cell) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"];
    }
    if (tableView.tag == 1) {
        cell.textLabel.text = @"工作";
    }
    else if(tableView.tag == 2)
    {
        cell.textLabel.text = @"任务";
    }
    else
    {
        cell.textLabel.text = @"目标";
    }
    return cell;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView.tag == 1) {
        return 1;
    }
    else
    {
        return 2;
    }

}

由实例代码可知,实现tableview 的代理可以根据tab 来区分

刷新代理回调:可以通过tableArr 数组取出相应的tableview;

-(void)refreshViewWithTag:(int)tag andIsHeader:(BOOL)isHeader
{
    if(isHeader)
    {
        if(tag == 1)
        {
            UITableView *table = _scrollTapViw.tableArr[tag -1];
            [table reloadData];
        }
        NSLog(@"当前%d个tableview 的头部正在刷新",tag);
    }
    else
    {
        NSLog(@"当前%d个tableview 的尾部正在刷新",tag);
    }
}

4 简单的实现原理如下图
这个控件可以分成两部分


iOS界面封装(滚动切换选项卡布局)_第2张图片
A47936D6-A4C1-476A-A658-3228524A66A1.png

demo上传到了如下链接(github 求star)
https://github.com/heysunnyboy/scrollTapLayout.git

你可能感兴趣的:(iOS界面封装(滚动切换选项卡布局))