iOS多项选项卡TYTabPagerBar和分页控制器TYPagerController使用小结

news2024/10/7 6:50:52

最近做项目的时候,用到了顶部选项卡和底部分页控制器相关的功能。之前做的话都是自己手动封装,通过两个UIScrollView联动来实现。公司同事给推荐了一个封装好的库,

TYPagerController,内部也是通过ScrollView的联动来实现的,不过功能确实很强大。有幸研究使用了一下,小结分享备用。

  第一步,当然是导入相应的库文件,引用相关的头文件

  #import <TYPagerController/TYPagerController.h>

  #import <TYPagerController/TYTabPagerBar.h>

  ,现在用的多的是pod导入;

  第二步,就是具体的用法了。引入相关的协议,定义实例变量。

  @property (nonatomic, strong) TYTabPagerBar *tabPagerBar;

  @property (nonatomic, strong) TYPagerController *pagerController;

  

-(TYTabPagerBar *)tabPagerBar{

    //顶部bar

    if (!_tabPagerBar) {

        _tabPagerBar = [[TYTabPagerBar alloc]init];

        _tabPagerBar.layout.barStyle = TYPagerBarStyleProgressElasticView;

        _tabPagerBar.layout.cellSpacing = 20;

        _tabPagerBar.layout.cellEdging = 0;

        _tabPagerBar.layout.normalTextFont = K_CC_FONT(16);

        _tabPagerBar.layout.selectedTextFont = K_CC_FONT_SEMIBOLD(18);

        _tabPagerBar.layout.normalTextColor = K_CC_COLOR_STRING(@"#666666");

        _tabPagerBar.layout.selectedTextColor = K_CC_COLOR_STRING(@"#6294FF");//K_CC_COLOR_BLUE;

        _tabPagerBar.layout.adjustContentCellsCenter = YES;

        _tabPagerBar.layout.progressColor = K_CC_COLOR_STRING(@"#6294FF");

        _tabPagerBar.layout.textColorProgressEnable=YES;

        _tabPagerBar.dataSource = self;

        _tabPagerBar.delegate = self;

        [_tabPagerBar registerClass:[TYTabPagerBarCell class] forCellWithReuseIdentifier:[TYTabPagerBarCell cellIdentifier]];

    }

    return _tabPagerBar;

}

-(TYPagerController *)pagerController{

    //内容controller

    if (!_pagerController) {

        _pagerController = [[TYPagerController alloc]init];

        _pagerController.layout.prefetchItemCount = 0;//预加载个数

        //pagerController.layout.autoMemoryCache = NO;

        // 只有当scroll滚动动画停止时才加载pagerview,用于优化滚动时性能

        _pagerController.layout.addVisibleItemOnlyWhenScrollAnimatedEnd = YES;

        _pagerController.automaticallySystemManagerViewAppearanceMethods = NO;

        _pagerController.dataSource = self;

        _pagerController.delegate = self;

        _pagerController.view.backgroundColor = K_CC_GRAY_BG_COLOR;

        _pagerController.scrollView.backgroundColor = K_CC_GRAY_BG_COLOR;

    }

    return _pagerController;

}

  

- (UIViewController *)pagerController:(TYPagerController *)pagerController controllerForIndex:(NSInteger)index prefetching:(BOOL)prefetching {

    CCHighSeasPoolListViewController *VC = [[CCHighSeasPoolListViewController alloc]init];

    //此处需要区分普通用户和管理员

    if ([self.marketSeaRole isEqualToString:@"normal"]) {

        if (index== 0) {

            VC.condition=@"未分配";

        }else if (index== 1) {

            VC.condition=@"已分配";

        }else if (index== 2) {

            //客户公海池

            if ([self.itemtitle isEqualToString:@"acf202011accmksea"]) {

                VC.condition=@"已成交";

            }else{

                VC.condition=@"已成交";

            }

        }else {

            VC.condition=@"自建";

        }

    }else{//管理员

        if (index== 0) {

            VC.condition=@"未分配";

        }else if (index== 1) {

            VC.condition=@"已分配";

        }else if (index== 2) {

            VC.condition=@"已废弃";

        }else if (index== 3) {

            //客户公海池

            if ([self.itemtitle isEqualToString:@"acf202011accmksea"]) {

                VC.condition=@"已成交";

            }else{

                VC.condition=@"已成交";

            }

        }else {

            VC.condition=@"自建";

        }

    }

    VC.itemtitle=self.itemtitle;

    CCMoreListModel *moreModel=[self.dataSeasList objectAtIndex:self.currentSeasItem];

    VC.marketSeaId=moreModel.ID;

    VC.dataButtonList=self.dataButtonList;

    VC.dataSeasLeftList=self.dataSeasLeftList;

    VC.querysize=self.querysize;

    VC.marketSeaRole=self.marketSeaRole;

    VC.dataSeasPoolList=self.dataSeasList;

    return VC;

}

  最核心的地方基本就是这些,它强大的地方有三点,一是我可以上下联动,并返回当前选中项索引,可以通过通知刷新相关联的页面;二是我可以动态的设置顶部选项卡的个数,对应文本的大小和颜色;三是,底部可以加载view或者controller。使用过程中遇到的问题主要是,当前版本库里面选中项对应的加粗属性,作者用错变量了,需要去库文件手动改一下;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序 java ssm电影迷爱好者交流平台

电影交流平台是基于java编程语言&#xff0c;mysql数据库&#xff0c;idea开发工具开发的后台&#xff0c;前端是微信小程序开发工具开发。本设计分为用户和管理员两个角色&#xff0c;其中用户可以登陆微信端&#xff0c;查看电影信息&#xff0c;查看电影分类&#xff0c;对电…

Inobitec DICOM Viewer Pro 2.8.0 Crack

Inobitec DICOM Viewer Pro 2.8.0扩大医生可见和可能的极限。通过为医疗行业提供优质的创新 IT 解决方案&#xff0c;我们可以为改善全球人民的健康做出很多贡献。 动态渐进版&#xff08;每季度发布&#xff09;扩展功能 高级 3D 重建 以 OBJ、STL、PLY 格式导出表面 先进的…

SpringBoot2.x 自动化生成代码整合Mybatis

前言 Mybatis 是一个持久层ORM框架&#xff0c;负责Java与数据库数据交互&#xff0c;也可以简易理解为中介&#xff0c;相对于它&#xff0c;还有个中介是hibernate,不过在mybatis中sql语句的灵活性&#xff0c;可优化性比较强&#xff0c;这也是现在大多数人选择的原因。 1. …

【快速学习系列】Mybatis缓存和使用SpringBoot开启MyBatis缓存+ehcache

【快速学习系列】Mybatis缓存和使用SpringBoot开启MyBatis缓存ehcache Mybatis缓存 MyBatis一级缓存 Mybatis对缓存提供支持&#xff0c;但是在没有配置的默认情况下&#xff0c;它只开启一级缓存&#xff0c;一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一…

全员全域安全守护,蔚来ET7获Euro NCAP五星安全评级背后的硬核实力

2022年11月16日&#xff0c;蔚来智能电动旗舰轿车ET7 获得Euro NCAP&#xff08;欧盟新车安全评鉴协会&#xff09;五星安全评级&#xff0c;成为继ES8之后蔚来又一款获得欧洲五星安全评级的车型。ET7分别在乘客安全、儿童安全、弱势道路使用者安全、辅助安全得分91%、87%、73%…

两个事务并发写,能保证数据唯一吗?

哟&#xff0c;又是我小白。最近有点高产了。 连我自己都害怕了。 直接进入正题吧。 两个事务并发写&#xff0c;能保证数据唯一吗&#xff1f; 我先来解释下标题讲的是个啥。 我们假设有这么一个用户注册的场景。用户并发请求注册新用户。 你有一张数据库表&#xff0c;也就…

【数据可视化】第二章——基于matplotlib的数据可视化

目录系列课程学习目标1. 基于matplotlib的数据可视化2 matplotlib.pyplot函数库简介3 matplotlib.pyplot相关函数简介3.1 plt.plot(x, y, format_string, **kwargs)3.2 plt.title()3.3 plt.xlabel()/ylabel()3.4 plt.legend()3.5 pyplot的中文显示3.5.1 第一种方法3.5.2 第二种…

C#上位机系列(2)—常用控件的介绍:文本标签,按键,输入框

本文是讲解C#.net平台的Winform框架下的第二个内容&#xff0c;手把手介绍项目的创建方式以及一些写软件时常用的功能&#xff0c;讲解从零开始的每一个步骤。 本次介绍三个最常用控件的使用 1.文本控件Label 功能&#xff1a;显示一个文本 2.按键控件Button 功能&#x…

考研 | 组成原理【第二章】数据的表示和运算

考研 | 组成原理【第二章】数据的表示和运算 文章目录考研 | 组成原理【第二章】数据的表示和运算I. 数制与编码a. 进位计数制及其相互转换b. BCD码1. 8421码2. 余3码3. 2421码c. 无符号整数表示和运算1. 表示2. 运算d. 带符号整数的表示和运算1. 原码2. 反码3. 补码4. 移码5. …

多肽标签VSV-G Tag、YTDIEMNRLGK

VSV-G肽是一种源自水泡性口腔炎病毒糖蛋白的11个氨基酸的肽。编号: 191225 中文名称: 多肽标签VSV-G Tag 英文名: VSV-G Tag 英文同义词: VSV tag 单字母: H2N-YTDIEMNRLGK-OH 三字母: H2N-Tyr-Thr-Asp-Ile-Glu-Met-Asn-Arg-Leu-Gly-Lys-COOH 氨基酸个数: 11 分子式: C57H94N16…

【HMS Core】ScanPlus和Push推送库出现冲突该如何解决?

1、问题描述 项目中之前是同时集成了华为统一扫码服务SDK和华为推送SDK&#xff0c;这两天升级华为推送版本至6.3.0.304时发现这两个库出现了冲突&#xff0c; 这两个库的依赖版本情况如下所示&#xff1a; implementation com.huawei.hms:scanplus:2.7.0.301 implementatio…

[附源码]java毕业设计小型医院药品及门诊管理

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

《垃圾回收算法手册 自动内存管理的艺术》——内存分配(笔记)

文章目录七、内存分配7.1 顺序分配7.2 空闲链表分配7.2.1 首次适应分配7.2.2 循环首次适应分配7.2.3 最佳适应分配7.2.4空闲链表分配的加速快速适应分配(fast-fit allocation)位图适应分配(bitmapped-fits allocation)7.3 内存碎片化7.4 分区适应分配7.4.1 内存碎片7.4.2 空间大…

LINUX SECCOMP模块介绍

SECCOMP介绍 Seccomp是 "secure computing" 的 缩写。Linux内核2.6.12版本&#xff08;2005年3月8日&#xff09;引入。是linux一个安全模块&#xff0c;用于限制程序系统调用&#xff1b;当时如果使用了SECCOMP只允许4个系统调用&#xff1a; read&#xff0c;wri…

Flutter组件--Padding和AnimatedPadding

示意图: Padding介绍 在应用程序中有许多widget 时&#xff0c;这个时候画面常常会变得很拥挤&#xff0c;这个时候如果想要在widget之间来保留一些间距&#xff0c;那就用 Padding 为什么使用 Padding 而不使用 Container.padding 属性的 Container? Container 是将许多更…

RabbitMQ-08 不公平分发与预取值

不公平分发 我们之前演示的所有示例都遵循轮询分发&#xff0c;也就是多个消费者时交替消费队列消息。可以想一下我们之前的一个例子。Worker02处理消息只需要1s但是Worker03处理一个消息却用30s的情况。那么这个时候我们就要使用到不公平分发。简而言之就是能者多劳。 需要在消…

亚马逊刷单测评的正确方法是什么样的?

做亚马逊刷单测评时想要有效果&#xff0c;测评方法很重要&#xff0c;不能直接通过链接进行下单&#xff0c;这样显的很不真实&#xff0c;如果是要找人帮忙测评&#xff0c;可以通过以下方式进行&#xff1a; 1、通过关键词搜索进入 选择自己想刷的关键词&#xff0c;直接搜…

物联网安全年报小结

小结 不仅仅是 LockerGoga&#xff0c;其他勒索软件也对工业系统造成了重大损失&#xff0c;如全球第二大听力集团 Demant 被勒索造成损失达 9500 万美元 [21]&#xff1b;世界上最大的飞机零部件供给商之一 ASCO&#xff0c;因其位于 比利时扎芬特姆的工厂系统遭勒索病毒传染…

目标检测算法——YOLOv5/YOLOv7改进之结合​RepVGG(速度飙升)

>>>深度学习Tricks&#xff0c;第一时间送达<<< 目录 RepVGG——极简架构&#xff0c;SOTA性能&#xff01;&#xff01;&#xff01; &#xff08;一&#xff09;前沿介绍 1.RepVGGBlock模块 2.相关实验结果 &#xff08;二&#xff09;YOLOv5/YOLOv7改…

Alibaba官方上线,SpringBoot+SpringCloud全彩指南(第五版)

Alibaba作为国内一线互联网大厂&#xff0c;其中springcloudAlibaba更是阿里微服务最具代表性的技术之一&#xff0c;很多人只知道springcloudAlibaba其实面向微服务技术基本上都有的下面就给大家推荐一份Alibaba官网最新版&#xff1a;SpringBootSpringCloud微服务全栈开发小册…