首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 UICollectionView 实现首页卡片轮播效果

UICollectionView 是 iOS6 之后引入的一个新的 UI 控件,与 UITableView 有着很多相似的地方,开发过程我们都会选择使用它们俩来为 App 的整个页面进行布局,比如说淘宝的首页...思路分析 通过观察上面的图我们可以得出,这个网易云的轮播控件有三个特点,分别是: 1.支持图片手动横向滚动2.支持图片自动的滚动播放3.底部的分页控件会高亮显示出当前的图片是哪一张 好了,既然已经分析出来了它的特点...,那接下来就进入编程环节吧!...分页控件默认距离的边距 public var pageControlMargin: CGFloat = 10 // 分页控件大小,注意:当PageControlType不等于自定义类型,...,但是如果要正式 app 中使用,并且达到很好的用户体验还是有很大的优化空间的。

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

iOS开发之窥探UICollectionViewController(五) --一款炫酷的图片浏览组件

CustomTransformCollecionLayout头文件的代码如下所示,该文件定义了一个协议,协议的方法就是CollectionView要实现的那两个代理方法。...实现我们需要重写UICollectionViewLayout相关的方法,需要重写的方法如下: (1)....预加载布局方法, 该方法会在UICollectionView加载数据执行一次,该方法负责调用一些初始化函数。具体如下所示。...其中transform的值是根据CollectionView滚动偏移量来计算的,所以滚动CollectionView,Cell也会跟着旋转。...1 //当边界发生改变,是否应该刷新布局。如果YES则在边界变化(一般是scroll其他地方),将重新计算需要的布局信息。

1.4K80

iOS流水布局UICollectionView简单使用引实现结

引 开发我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往会更加方便。...首先看每个方块,也就是每个cell怎么呈现,这里的cell明显是自定义的,我们用一张图片填满cell,同时底部居中的位置放置一个label。...为了显得真实一点,我用了一个随机数来决定每个cell显示的图片和文字,这样呈现的时候就不会太过千篇一律。...colorWithRed:235.0/255.0 green:235.0/255.0 blue:235.0/255.0 alpha:1]; // 注册cell,此处的Identifier和DataSource方法的...代码中注释了一行,就是用来设置滚动方向为水平的,效果如下: 同样的内容,滚动方式变化后,呈现的效果也会变化。

1K00

【IOS开发基础系列】UICollectionView专题

1.3 关于重用         为了得到高效的View,对于cell的重用是必须的,避免了不断生成和销毁对象的操作,这与UITableView的情况是一致的。...但值得注意的UICollectionView,不仅cell可以重用,Supplementary View和Decoration View也是可以并且应当被重用的。...这个特性很受欢迎,因此UICollectionViewApple继承使用了这个特性,并且把其进行了一些扩展。...的子view,在当cell被选中,会自动去查找view是否有被选中状态下的改变。...需要注意根据滚动方向不同,header和footer的高和宽只有一个会起作用。垂直滚动section间宽度为该尺寸的高,而水平滚动为宽度起作用,如图。

34030

Swift 自定义布局实现 Cover Flow 效果

写在开头 大家早上好,今天我又给大家带来了一篇关于 UICollectionView 系列的文章,在上一篇文章,我们实现了一个酷炫的瀑布流布局,带大家初步的了解了 UICollectionView...随着 UICollectionView 滚动,Cell 会自动的进行缩放,当 Cell 的中心点与 UICollectionView 的中心点重合时放大,偏离中心点缩小 Cell 的滚动是分页滚动,...同学你讲的没错,但是当我们 Cell 的 width 加上边距等如果不占满 UICollectionView,那么就会出现一个问题,虽然你实现了分页效果,但是你的 Cell 滚动的过程是不会居中的....,返回一个新的偏移点坐标,它有俩个参数,第一个参数 proposedContentOffset 指的是滚动将要停止的偏移点坐标,第二个参数 velocity 指的是滚动速度;那既然我们能获取到当前滚动即将停止的坐标...minimumLineSpacing)) - minimumLineSpacing, height: 0) } } 衔接 UIViewController Cover Flow 的自定义布局已经实现好了,那剩下的就是视图控制器呈现了

1.6K20

添加多个屏幕-创建格线布局

在上一节,我们学习了如何使用按钮更改iPhone的屏幕。让我们进一步推动!我们将实现一个CollectionView,我们将能够切换到您想要的壁纸。该的CollectionView将是滚动的水平。...第二个视图控制器和约束内插入一个UIView:0左,0右和0底(全部相对于superview)。取消选中“ 约束”边距并将高度设置为380。 ?...从对象库拖放标签并将其约束Container的水平居中并将顶部设置为30。...它将为您提供运行CollectionView所需的两种方法。 Sections的项数和 Cell 第一个函数内部,我们只需返回3。...我们图像下面插入一个标签。文本是iPhone X并将底部约束为0并将容器的水平中心约束。“ 属性”检查器,将“滚动方向”更改为“ 水平”并取消选中“ 显示”指示器。

2.8K40

笔记 | Xamarin

ShellContent 对象,则将在底部选项卡添加一个顶部选项卡栏,通过该选项卡栏可以导航 ContentPage 对象: <Shell xmlns="http://xamarin.com/schemas...- Xamarin | Microsoft Docs <em>滚动</em>视图 ScrollView <em>在</em>Xamarin.Forms<em>中</em>,<em>滚动</em>视图ScrollView用来实现长内容的<em>滚动</em>显示。...同时,利用ScrollView提供的<em>滚动</em>结束事件Scrolled,可以提示用户,或者<em>加载</em>新的内容。...: Application(Debuggable=false)] #endif 将程序集捆绑<em>到</em>本机代码 此选项启用时,程序集会捆绑<em>到</em>本机共享库<em>中</em>。...“将程序集捆绑<em>到</em>本机代码”<em>在</em>默认情况下处于禁用状态。 请注意,“捆绑<em>到</em>本机代码”选项执行不意味着程序集会编译<em>到</em>本机代码<em>中</em>。 无法使用 AOT 编译将程序集编译为本机代码。

23.9K20

Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

答案当然是肯定的, UICollectionView 控件我们管这叫 Supplementary View, 翻译过来就是 "追加视图",那 UICollectionView 该怎么实现给每个...UICollectionView.elementKindSectionHeader 和 UICollectionView.elementKindSectionFooter 来表示3.注册视图的标识符,用于 UICollectionView 加载视图的时候能分辨加载的是...接下来的内容,你将会学到以下知识点: 1.如何在 UICollectionView 创建 Decoration View2.自定义布局属性,计算 section 的背景图位置和大小3.实现 UICollectionView...最后,我们来看下最终效果: 最后 关于 UICollectionView 系列的整理,今天就要短暂的划上一个句号了,写这个系列之前,我对 UICollectionView 的想法就是:无非就是比...但当我真正的去整理它的一些技术点,我发现它实在是太灵活了,以前觉得追加视图,装饰视图这些东西很简单,几行代码的事情,但事实上,当你想要去实现一些高度自定义的界面的时候,你才会认识自己的不足,你并没有对这些知识有更深层次的认知

1.8K10

手把手带你撸一个网易云音乐首页(三)

我们实际开发过程,数据请求的操作必不可少,必须要先将数据提供给 ViewModel,然后在数据更新重新 Reload TableView。...我们知道 UICollectionView 的属性,有一个分页的属性:isPagingEnabled,当设置成 true ,每次滚动的位移量等于它自身 frame 的宽度;当不设置这个分页属性,它的默认值是...decelerationRate = .fast } // 这个方法的返回值,决定了 CollectionView 停止滚动的偏移量 override func targetContentOffset...搜索 关于如何构建不同的 Cell 这里就讲完了,如果大家有疑问的话,欢迎评论区或者我的公号中发信息给我。 接下来,我们开始讲首页的最后一部分---搜索框。...UI 视图, 由于我们首页里的 Cell 的样式有不同之处但也有相似的地方,所以我们创建了一个基类 BaseViewCell, 用于展示 Cell 相同的地方;然后我们各个 Cell 构建不同样式的

2.2K10

Objective-C MapKit的使用-LBS简单的租车主界面demo效果分析代码demo地址

根据不同的种类显示大头针 车辆信息view:根据当前点击的大头针显示对应的车辆信息 车辆类型选择view:选择车辆类型 交互分析 选择车辆类型,地图上出现不同的大头针 车辆信息view可滑动,滑动完成后地图定位当前车辆的大头针上...CarTypeNone = -1, //默认大头针 CarTypeDaily, //日租 CarTypeHourly, //租...; //跳转新位置 [scrollView setContentOffset:CGPointMake(newTargetOffset, 0) animated:YES]; } 当界面滚动完成...model in self.carModelArray) { CLGeocoder *coder = [[CLGeocoder alloc] init]; //model的位置...滚动结束后 调用 - (void)selectItemArray:(NSArray *)array WithIndex:(NSInteger)index { MyAnnotation

1.9K40

仿淘宝类电商秒杀分页控件(附源码)

淘抢购页面.png 可以发现,只要滚动到了中间红色那块区域的文字,颜色都会变成白色。。。 脑洞了很久也没有想到思路!后来网上查找,从一篇文章得到了灵感 视错觉结合UI。...collectionView = (UICollectionView *)scrollView; //同步两个collectionView滚动 if (collectionView.tag...} 3、需要一个遮罩,一个UICollectionView遮罩下面,一个遮罩上面; [self addSubview:self.collectionViewBottom]; [self addSubview...[fillColor set]; [trianglePath fill]; return trianglePath; } ▐ 5.3 GFPageViewController 这里滚动菜单的实现就完成了...我的初衷其实就是把这个滚动菜单封装出来,后来发现使用这个菜单的大部分情况都是和多个子控制器一起使用,所以就再进行了一步封装,把控制器的逻辑都封装到了GFPageViewController控制器

1.3K20

iOS 封装跑马灯和轮播效果

自定义分页宽度:默认的分页宽度是UICollectionView的宽度,所以当分页宽度的不等于UICollectionView的宽度或分页间隔不等于0会出现错误,这时就需要我们通过自定义UICollectionViewFlowLayout.../** 返回值决定了collectionView停止滚动的偏移量 手指松开后执行 * proposedContentOffset:原本情况下,collectionView停止滚动最终的偏移量 *...velocity 滚动速率,通过这个参数可以了解滚动的方向 */ - (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset...cell,前边尾首相连需要UICollectionView可见范围内的数据源后边的元素cell,后边首尾相连需要UICollectionView可见范围内的数据源前边的元素cell //获取首尾相连循环滚动需要用到的元素...indexSetWithIndexesInRange:NSMakeRange(0,_addLeftCount)]]; } } 二、WSL_RollView用法 请看WSLRollView.h文件的注释

4K40

iOS开发 MVVM+RAC 的使用Demo效果ReactiveCocoa简介Demo分析代码Demo地址

demo.gif ReactiveCocoa简介 iOS开发过程,当某些事件响应的时候,需要处理某些业务逻辑,这些事件都用不同的方式来处理。...比如按钮的点击使用action,ScrollView滚动使用delegate,属性值改变使用KVO等系统提供的方式。...基础的话我还是推荐这篇博文 讲的都挺细的 当然不爽的话可以试试这个视频版的,也是某培训机构流出的 Demo分析 本文使用的是豆瓣API(非官方) Demo所要做的功能很简单: 从网络请求数据,并加载到...代码 由于BlocksKit的使用,当我们写Delegate和Datasource 就不用分离函数,整个逻辑都能凑在一起,比如这样定义一个collectionView: - (void)initStyle...//执行command [self.viewModel.command execute:nil]; [SVProgressHUD showWithStatus:@"加载

1.7K40

iOS流布局UICollectionView系列七——三维的球型布局

iOS流布局UICollectionView系列七——三维的球型布局 一、引言         通过6篇的博客,从平面上最简单的规则摆放的布局,不规则的瀑布流布局,再到平面的圆环布局,我们突破了线性布局的局限...,在后面,我们将布局扩展到了空间,Z轴上进行了平移,我们实现了一个类似UIPickerView的布局模型,其实我们还可以再进一步,类比于平面布局,picKerView只是线性排列布局空间上的旋转与平移...collectionViewLayout:layout];     collect.delegate=self;     collect.dataSource=self;     //这里设置的偏移量是为了无缝进行循环的滚动...我们的layout类,将代码修改成如下: -(void)prepareLayout{     [super prepareLayout];      } //返回的滚动范围增加了对x轴的兼容 -(CGSize...滑动屏幕,这个圆球是可以进行滚动的。 TIP:这里我们只平均分配了四个方向上的布局,如果item更加小也更加多,我们可以分配到更多的方向上,使球体更加充实。

1.4K20

iOS流布局UICollectionView系列六——将布局从平面应用到空间

而我们这次要讨论的布局则不同,pickerView会随着我们手指的拖动而进行滚动,因此UICollectionView的每一个item的布局是不断变化的,所以这次,我们采用动态配置的方式,layoutAttributesForItemAtIndexPath...至于layoutAttributesForItemAtIndexPath方法,它也是UICollectionViewLayout类的方法,用于我们自定义进行重写,至于为什么动态布局要在这里面配置item...的布局属性,后面我们会了解。        ...一个滑动的范围,我们以一屏collectionView的滑动距离来当做滚轮滚动一下的参照,我们布局类的如下方法返回滑动区域: -(CGSize)collectionViewContentSize{...: //一开始将collectionView的偏移量设置为1屏的偏移量 collect.contentOffset = CGPointMake(0, 400); layout类: //将滚动范围设置为

1.4K20
领券