collectionview cell吸顶效果
#import "MyFlowLayout.h"
@implementation MyFlowLayout
#define kWidth self.collectionView.frame.size.width
- (instancetype)init
{
if (self = [super init]) {
// 设置item估计值
self.estimatedItemSize = CGSizeMake(300, 100);
// 全局配置item尺寸,单独定义调用协议方法[sizeForItemAtIndexPath]
self.itemSize = CGSizeMake(300, 100);
// 全局配置每行之间的间距,单独定义可调用协议方法[minimumLineSpacingForSectionAtIndex]
self.minimumLineSpacing = 10;
// 全局配置每行内部item的间距,单独定义可调用协议方法[minimumInteritemSpacingForSectionAtIndex]
self.minimumInteritemSpacing = 0;
// 设置滚动方向
// UICollectionViewScrollDirectionVertical
// UICollectionViewScrollDirectionHorizontal
self.scrollDirection = UICollectionViewScrollDirectionVertical;
// 设置是否当元素超出屏幕之后固定头部视图位置,默认NO;
self.sectionHeadersPinToVisibleBounds = YES;
// 设置是否当元素超出屏幕之后固定尾部视图位置,默认NO;
self.sectionFootersPinToVisibleBounds = YES;
}
return self;
}
- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect
{
// 拿到可见区域布局属性
NSArray *arr = [super layoutAttributesForElementsInRect:rect];
// 处理当前可见区内的布局属性吸顶
[arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[self recomputeCellAttribute:obj];
}];
return arr;
}
- (void)recomputeCellAttribute:(UICollectionViewLayoutAttributes *)attrib
{
// 获得悬停的Y值
CGFloat minY = CGRectGetMinY(self.collectionView.bounds) + self.collectionView.contentInset.top;
//拿到布局属性应该出现的位置
CGFloat finalY = MAX(minY, attrib.frame.origin.y);
CGPoint point = attrib.frame.origin;
point.y = finalY;
attrib.frame = (CGRect){point,attrib.frame.size};
//根据IndexPath设置zIndex能确立顶部悬停的cell被后来的cell覆盖的层级关系
attrib.zIndex = attrib.indexPath.row;
}
- (NSArray<NSString *>*)arrStr
{
return @[@"f",@1];
}
- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
return YES;
}
@end
collectionview cell吸顶效果的更多相关文章
- 自定义tab吸顶效果一(原理)
PS:问题:什么是吸顶,吸顶有什么作用,吸顶怎么使用? 在很多app商城中,介绍软件的时候就会使用吸顶效果, 吸顶有很多作用,一个最简单粗暴的作用就是,让用户知道此刻在浏览哪个模块,并可以选择另外的模 ...
- Html吸顶效果
Html吸顶效果 一.HTML HTML中需要给div一个id <!DOCTYPE html> <html lang="en"> <head> ...
- 基于scroll的吸顶效果
本次要实现的是一种常见的网页效果,如下: 页面由头部,导航,主体内容三部分组成,当页面发生滚动时,头部逐渐隐藏,导航部分向上移动,直到导航部分距离浏览器顶部为零时,导航部分固定不动,保持吸顶效果,如下 ...
- better-scroll之吸顶效果巨坑挣扎中
今天和大家分享下better-scroll这款移动端用来解决各种滚动需求的插件(目前已经支持PC) 关于其中的API大家可以去官网看下 这里就给大家介绍几种常用的以及需要注意的点是什么 首先说一下b ...
- js之吸顶效果
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- react.js中实现tab吸顶效果问题
在react项目开发中有一个需求是,页面滚动到tab所在位置时,tab要固定在顶部. 实现的思路其实很简单,就是判断当滚动距离scrollTop大于tab距离页面顶部距离offsetTop时,将tab ...
- [RN] React Native 头部 滑动吸顶效果的实现
React Native 头部 滑动吸顶效果的实现 效果如下图所示: 实现方法: 一.吸顶组件封装 StickyHeader .js import * as React from 'react'; i ...
- Vue 事件监听实现导航栏吸顶效果(页面滚动后定位)
Vue 事件监听实现导航栏吸顶效果(页面滚动后定位) Howie126313 关注 2017.11.19 15:05* 字数 100 阅读 3154评论 0喜欢 0 所说的吸顶效果就是在页面没有滑动之 ...
- js 实现吸顶效果 || 小程序的吸顶效果
小程序吸顶效果 <!--index.wxml--> <view class="container"> <view class='outside-img ...
随机推荐
- oracle,mysql,SqlServer三种数据库的分页查询的实例。
MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如 ...
- 安装php-amqplib(RabbitMQ的phpAPI)
历史经验告诉我们,装逼没有好下场. 总结一下之前composer安装php-amqplib包失败的原因: composer安装的时候需要指定PHP执行文件的位置: PHP安装路径:/usr/local ...
- 一、Hello World
刚创建的Android项目是一个基础的Hello World项目,包含一些默认文件,我们需要花一点时间看看最重要的部分: activity_main.xml -- 这是刚才用Android Stud ...
- white-space: nowrap 与字符串(文本)换行
在需要对字符串进行元素内换行时,我们通常要对该元素设置相关属性约束以及宽度. 例如:style="word-wrap:break-word; word-break: break-all; w ...
- EJB 简介
EJB: 被称为java企业bean,服务器端组件,核心应用是部署分布式应用程序.用它部署的系统不限定平台.实际上ejb是一种产品,描述了应用组件要解决的标准 标准: 可扩展 (Scalable) ...
- base64
<jsp:param name="modle" value=<%=base64.getBase64(8+"") %>/> 页面报错:
- Linux内核创建一个新进程
张雨梅 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10000 创建新进程 如果同一个程序被多 ...
- 6.1-CALayer 使用
@设置圆角 注意点 1圆角效果,并不是在给定frame布局后有,要给定内容后才有 //头像 NSData *data = [[DJXMPPTool sharedInstance].cardAvatar ...
- MySQL查询分析器EXPLAIN或DESC
转载:http://chenzehe.iteye.com/blog/1682081 MySQL可以通过EXPLAIN或DESC来查看并分析SQL语句的执行情况,如下需要计算2006年所有公司的销售额, ...
- unity自带寻路Navmesh入门教程(三)
继续介绍NavMesh寻路的功能,接下来阿赵打算讲一下以下两个例子,先看看完成的效果: 第一个例子对于喜欢DOTA的朋友应该很熟悉了,就是不同小队分不同路线进攻的寻路,红绿蓝三个队伍分别根据三条路 ...