IGListKit IGListKit是Instagram出的一个基于UICollectionView的数据驱动UI框架,目前在github上有9k+ star,被充分利用在Instagram App...ListDiffable ListDiffable协议,这属于IGListKit核心Diff算法的一部分,实现了ListDiffable协议才能使用diff算法,这个算法是计算新老两个数组前后数据变化增删改移关系的一个算法...使用的是Paul Heckel 的A technique for isolating differences between files 的算法。...IGListKit还能非常方便的实现多级列表、带多选功能的多级列表。 当然一样事物不可能只有优点,IGListKit同样拥有缺点,就目前为止我使用的经历来看,主要这几个可能有点坑。...基本上都是要自己计算cell的size的,不过IGListKit将大cell分成小cell了,计算高度已经变的容易很多了,这个缺点可以忽略了 因为是基于UICollectionView的,所以没有UITableView
#####集合视图的组成 集合视图有4个重要的组成部分,分别为: 单元格:即视图中的一个单元格。 节:即集合视图中的一个行数据,由多个单元格构成。 补充视图:即节的头和脚。...#####集合视图 集合视图UICollectionView继承自UIScrollView。...#####单元格 集合视图单元格是集合视图中最为重要的组成部分,没有样式和风格定义,单元格就是一个视图,可以在内部放置其他视图或控件。...#####集合视图的一些常见属性 初始化:UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:CGRectZero...UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ } 复制代码 //动态设置每行的间距大小
有些朋友抛出了 nimbus、IGListKit 等业界应用很广的库,前些时间网易工程师也推出了 M80TableViewComponent。...业务痛点 iOS 界面开发中 UITableView / UICollectionView 的出场率极高,它们都是使用代理方法配置数据源,虽然这样的设计理念符合了单一职责原则,但在列表变得复杂时代理方法的处理将变得力不从心...图1 代码简单轻量 YBHandyList 保留最小功能,代码量很少,核心思路就一句话:将 UITableView / UICollectionView 的数据源从代理方法配置转化为数组配置。...YBHandyList 的语法糖非常收敛,简单的一个延展,你甚至可以选择不使用语法糖,直接使用代理实现类。 由此,新手工程师也能对实施代码充满信心。...YBHandyList 通过继承默认代理实现类就能拓展实现其它的 UITableView / UICollectionView 代理方法。
它上手简单使用方便,界面简洁且友好同时支持 Linux、macOS 和 Windows 操作系统 ?...:Instagram 推出的一套数据驱动的 UICollectionView 框架,用来创建快速且灵活的列表界面。...提供了更简单的使用 UICollectionView 方式,并且支持对自己的数据模型进行自定义 diff 操作,提供更好的架构以复用 Cell 和组件 地址:https://github.com/Instagram.../IGListKit 27、Observable-Swift:一个在 Swift 上实现 KVO 的轻量级工具。...通过它可以在浏览器上轻松查询 CH 的数据,还有丰富的图表帮助分析数据,最后还可选择内网搭建或者直接在线使用 ?
第一步,实现一个 10 行列表,每行随机显示 0 到 100 之间的整数。...完全跟数据没有关系的视图,负责给 cell 或者 supplementary Views 添加辅助视图用的,例如给单个 section 或整个 UICollectionView 的背景(background...建议将网络端数据缓存并存储在手机端,将取得部分数据根据优先级进行顺序渲染,还可以优化服务器端的实现来优化网络请求。...我们知道要定制化 UICollectionView 的 layout 就一定要使用 UICollectionViewLayout。...以上只是一种比较直接的实现,最复杂的部分在于 prepare() 中运用 xOffset 和 yOffset 构建 LayoutAttributes 的过程,其中含有大量的数学计算。
近日,国外HashiCorp在官网宣布:不允许中国境内使用、部署和安装该企业旗下的【企业版】产品和软件。...请注意,本软件不得在中华人民共和国境内使用、部署或安装。...Vagrant:也是一个比较流行的虚拟机管理软件,使用Vagrant 可以让我们用命令直接从云上下载虚拟机的镜像,然后进行创建和管理等。...本次的声明限制主要针对商业版本,对于开源版本还没有提及,而对于我们大部分 Spring Cloud 用户来说,选择开源版本的可能性更大,所以本次的声明可能还不会收到很大的影响。...但是,对于国产注册中心的选择,或许在将来会变为更稳妥的选择,比如使用Spring Cloud Alibaba中的Nacos。
@Cacheable使用两个或多个参数作为缓存的key 常见的如分页查询:使用单引号指定分割符,最终会拼接为一个字符串 @Cacheable(key = "#page+'-'+#pageSize") public...int pageStart = (page-1)*pageSize; return userMapper.findAllUsers(pageStart,pageSize); } 当然还可以使用单引号自定义字符串作为缓存的
实验环境 此次实验的环境如下 MySQL 5.7.26 Redhat 6.10 操作系统账号:mysql 数据库备份账号:backup xtrabackup 同样支持部分备份,即可以备份指定的表和数据库...单独备份表的话需要表在独立的表空间里面,即配置了innodb_file_per_table参数 关于还原部分备份,只有一个注意点,即不能使用传统的prepare和copy back命令,需要使用export...建立备份目录 shell>mkdir -p /oradata/data/mysql/xtra 注意 mysql用户需要有读写权限,并且该目录需要为空,否则备份失败 1.3 开始备份 我们有三种方法对数据库进行部分备份...备份过程分析 接下来分析下其备份的过程,从输出的日志上来看 以第三种方法的输出来举例 2.1 命令提示部分 ?...这部分首先根据命令的条件跳过一些数据库 这部分首先列出数据库中有哪些表空间 系统表空间(ibdata) undo表空间(undo) 用户表空间(innodb_file_per_table开启后每张表和表空间一一对应
iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局 一、引言 前面的博客介绍了UICollectionView的相关方法和其协议中的方法,但对布局的管理类...UICollectionView的简单使用:http://my.oschina.net/u/2340880/blog/522613 UICollectionView相关协议方法:http://my.oschina.net...二、将九宫格式的布局进行升级 在第一篇博客中,通过UICollectionView,我们很轻松的完成了一个九宫格的布局,但是如此中规中矩的布局方式,有时候并不能满足我们的需求,有时我们需要每一个... *collect = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, 320, 400) collectionViewLayout:layout...layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section; 动态设置每行的间距大小
如果熟悉UITableView的话,其实很多地方都是类似的,甚至可以说UITableView是一种特殊的UICollectionView,正如正方形是一种特殊的矩形一样,UITableView就是一种每行只放一个方块的...UICollectionView嘛。...不同之处在于UICollectionView需要一个布局参数来决定cell是如何布局的,默认是流水布局,也就是我们最常见的形式,也就是上面图里的形式;此外,UICollectionView除了垂直滚动,...UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH...的使用方式,就像UITableView可以简单也可以做的非常多样,UICollectionView也是一种乍看很平常但可以容纳非常多想象力的布局方式,只要善加利用就可以做出很好的效果,当然,什么时候用UICollectionView
全屏指的是播放画面view最大化,通过把状态栏隐藏或透明; 所以超级播放器在实现全屏的时候也是有对状态栏做处理; 当自己的项目也是有做沉浸式开发状态栏时看能会跟超级播放器的逻辑有冲突; image.png...解决办法 1.部分有黑(白)边的手机用我们的dmeo是否也会有同样问题? 2.检查一下自己项目的沉浸式状态栏逻辑,注释掉试一下,或者把我们的代码逻辑注释掉调试一下
平常我在业务开发中,绝大部分情况都是使用的UITableView,而UICollectionView则是在极少情况下才会去使用,这就导致了我对UICollectionView略感陌生。...本篇文章就是以二者对比的方式对UICollectionView做一个小总结。...UICollectionView的collectionCell支持横向&纵向布局,比UITableView的tableCell只有纵向布局要更加灵活。...UICollectionView和UITableView有相同的API设计理念——都是基于dataSource以及delegate驱动的。...UITableView中的row,对应到UICollectionView中就是item,因为一行可以展示多个cell,使用row(行)不能准确地表达。
你的服务器是不是阻止了对象存储通过镜像回源功能来你站点的抓取资源的爬虫,去你的服务器防火墙设置看看,特别是使用宝塔的用户,是不是宝塔的防火墙设置了。...这个问题可以归类为为什么部分图片没有被替换成 CDN 域名,还是本地域名,拿 Revolution slider 插件出来说,因为因为这个插件用户比较多,碰到的人比较多。...其实对于 WordPress 正确的做法是使用 set_url_scheme 函数来处理,它会自动根据页面 http 协议给图片加上对应的协议,不过这个要修改插件和主题的源代码,对于很多人来说并不合适。...所以我在「CDN 加速」功能中增加了「将无http://或https://的静态资源也进行镜像处理」的选项,你只要勾选一下,这些图片也会被替换成 CDN 域名,所以去勾选一下,再看看是不是否都替换成 CDN...另外部分用户通过浏览器开发者工具看到个别的 JS 没有部分替换成 CDN 域名: 简单看了一下,这几个 JS 不是 PHP 直接加载的,是通过其他 JS 加载的,所以无法替换,只能通过更改你的主题代码来实现
下面是Excel的比较运算符: = 等于 不等于 > 大于 >= 大于等于 < 小于 <= 小于等于 在诸如基于条件查找最小值或最大值、计算标准偏差等情形时,Excel没有提供相应的内置函数,必须编写数组公式...如下图2所示,使用DMIN函数来计算指定城市的最小时间。 ? 图2 如果仅要知道某个城市的最小时间,使用DMIN函数比使用数组公式更简单且对于大数据集来说速度更快。...如下图3所示,显然,对于多个值不能像以前那样简单地下拉公式,这是其不利之处。 ?...可以看出,数据透视表对于带有一个或多个判断条件的聚合计算非常方便,但是与公式相比,当源数据变化时,它不能立即更新,需要刷新才能更新其内容。...此示例也可以使用上文介绍的DMAX函数或数据透视表来实现,有兴趣的朋友可以试试。 再看一个示例。
掉进程 第一列是占用的程序,第二列是进程PID,最后一列是占用的文件,在活动监视器中根据程序名称关闭程序即可,如果没有找到就直接执行kill -9 pid杀掉 参考链接 Mac中磁盘没有被推出,因为一个或多个程序可能正在使用它解决方法
使用UICollectionView必须实现UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout...Collection View的构成,我们能看到的有三个部分: Cells Supplementary Views 追加视图 (类似Header或者Footer) Decoration Views 装饰视图...通过设定itemSize可以全局地改变所有cell的尺寸,如果想要对某个cell制定尺寸, //可以使用-collectionView:layout:sizeForItemAtIndexPath:方法。...中的所有的元素的布局属性 /* 返回的是包含UICollectionViewLayoutAttributes的NSArray UICollectionViewLayoutAttributes可以是cell,追加视图或装饰...注意这里的尺寸不是指可视部分的尺寸,而应该是所有内容所占的尺寸。 collectionView的本质是一个scrollView,因此需要这个尺寸来配置滚动行为。
功能特点 实现了菜单切换的视觉差,效果棒棒哒; 使用简单,创建一个控制器直接继承GFPageViewController,设置需要添加的子控制器、标题、副标题就搞定; 菜单大部分的样式都可进行自定义;...组件使用 ▐ 4.1 基本使用方式 创建一个控制器继承自GFPageViewController,创建完之后给控制器设置需要添加的子控制器(Array)、标题(Array)、副标题(Array): #...实现: 知道了原理,那就开始构思: 1、我的实现思路是用UICollectionView来实现滚动菜单; 2、需要两个UICollectionView,UICollectionViewCell的文字内容一样...超出遮罩的部分的内容不显示出来; self.maskView.clipsToBounds = YES; ▐ 5.2 使用UIBezierPath绘制遮罩 大家会发现这个遮罩是多边形的。...我的初衷其实就是把这个滚动菜单封装出来,后来发现使用这个菜单的大部分情况都是和多个子控制器一起使用,所以就再进行了一步封装,把控制器的逻辑都封装到了GFPageViewController控制器中。
避免多个UICollectionView 在一个View中 ?...如果你在一个页面中创建了多个 UICollectionView 它们使用一套代理方法,也许在每个代理方法中你对当前的UICollectionView 做了判断,使用了不用的数据源,可是你会发现还是有莫名其妙的...正确的做法是: 如上图的效果,自定义一个包含一个Label 一个UICollectionView的视图,创建两个对象即可,这样可避免多个UICollectionView使用一套代理协议造成的莫名其妙的...注意:objective-c 并不会将BOOL作为仅能保存YES或NO值的真正布尔类型来处理。编译器仍将BOOL认作8位二进制数,YES 和 NO 值只是在习惯上的一种理解。...问题:如果不小心将一个大于1字节的整型值(比如short或int)赋给一个BOOL变量,那么只有低位字节会用作BOOL值。
标准的UICollectionView包含三个部分,它们都是UIView的子类: • Cells 用于展示内容的主体,对于不同的cell可以指定不同尺寸和不同的内容,这个稍后再说 • Supplementary...这个特性很受欢迎,因此在UICollectionView中Apple继承使用了这个特性,并且把其进行了一些扩展。...,大部分情况下更偏向于图像而非文字,因此需求将会千奇百怪。...的实现包括两个必要部分:UICollectionViewDataSource和UICollectionViewLayout,和一个交互部分:UICollectionViewDelegate。...; 4 参考链接 UICollectionView详解 http://blog.csdn.net/majiakun1/article/details/17204693 UICollectionView的使用方法及