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

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

随着 UICollectionView 滚动,Cell 会自动的进行缩放,当 Cell 的中心点与 UICollectionView 的中心点重合时放大,偏离中心点时缩小 Cell 的滚动是分页滚动,...第二步,要实现 Cell 随 UICollectionView 滚动时具有缩放效果,就需要找一个合适的时机对 Cell 进行缩放,我的思路是先计算出 UICollectionView 整体滚动内容的中心点的...,返回一个新的偏移点坐标,它有俩个参数,第一个参数 proposedContentOffset 指的是滚动将要停止时的偏移点坐标,第二个参数 velocity 指的是滚动速度;那既然我们能获取到当前滚动即将停止的坐标...cheap, show me the code, 下面就呈上 Cover Flow 布局的源码供大家参考,里面一些涉及到计算的逻辑,我已经用注释写明,代码如下: // // CoverFlowLayout.swift...UIViewController Cover Flow 的自定义布局已经实现好了,那剩下的就是在视图控制器中呈现了,这一步实现起来很简单,也不做赘述了,直接看源码: // // CoverFlowViewController.swift

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

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

    滚动区域的大小。...其中transform的值是根据CollectionView的滚动偏移量来计算的,所以在滚动CollectionView时,Cell也会跟着旋转。...该方法返回YES意味着当滚动时,会再次执行上面(4)的方法,重新为每个Cell的属性赋值。所以重写下面的方法,并返回YES(下面的表达式也是一样的)才可以运动起来呢。...1 //当边界发生改变时,是否应该刷新布局。如果YES则在边界变化(一般是scroll到其他地方)时,将重新计算需要的布局信息。...CGRectEqualToRect(newBounds, self.collectionView.bounds); 4 } (6).重写下面的方法是为了修正CollectionView滚动的偏移量,使当前显示的

    1.5K80

    iOS开发之常用资讯类App的分类展示与编辑的完整案例实现(Swift版)

    上篇博客我们聊了《资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0)》,今天的这篇博客就在上篇博客的基础上做些东西。...当然,主要我们还是使用灵活多变的CollectionView来实现。下方我们将会给出程序的运行效果,然后给出核心的代码实现,在文章的末尾我们会给出github上源代码的分享链接。...点击菜单右边的加号,Present出菜单的编辑页面,该页面也就是我们上篇博客所介绍的页面。在该页面我们可以添加新的菜单项,并对已经添加的菜单项进行拖动排序。具体效果如下所示。 ?...3、CEScrollMenu: 该组件就是上面那个可以横向滚动的菜单了。 4、CESelectTheme: 该组件就是上篇博客所介绍的,负责编辑菜单的组件。...控制器,由该控制器Present出CESelectTheme组件进行数据源的操作。

    1.5K50

    Swift多线程之Operation:异步加载CollectionView图片1. Operation 设置依赖关系2. 前置知识点内容3. CollectionView中图片进行异步加载

    知识点有:自定义Operation子类、map函数、Swift特有的元组数据类型。 下面是最终实现的CollectionView异步加载图片的例子效果: ?...Swift多线程之Operation:按优先级加载图片 我们可以通过设置依赖关系,建立起先后的顺序。...CollectionView中图片进行异步加载 来看一下思维导图: ? image.png 源代码各位可以自行下载观看,只有Swift版本的下载 。...我好像说了句废话,因为代码中用了Swift特有的数据格式,当然提供不了Objective-C的源码了。...给item赋值图片的重点地方的代码: override func collectionView(_ collectionView: UICollectionView, willDisplay cell:

    1.5K70

    Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

    UICollectionView 添加 Supplementary View 首先看下效果图: 具体代码逻辑如下,注释已经在代码中添加: // // BaseAPIViewController.swift...例如像 App Store 这样的: Sticky Section Header Sticky Section Header 是用追加视图实现的一种效果,具体表现为当 UICollectionView 滚动的时候...,只要当前 section 的 headerView 向上滚动到最顶部的时候,它就会与屏幕顶部粘住不会隐藏,具体效果如下: 这效果第一眼看上去是不是感觉有点复杂,这效果起码得撸个百来行代码才能实现这效果啊...新建一个继承自 UICollectionReusableView 的类,代码如下: // // DecorationView.swift // SwiftScrollBanner // // Created...(self.collectionView!

    2.2K10

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

    思路分析 通过观察上面的图我们可以得出,这个网易云的轮播控件有三个特点,分别是: 1.支持图片手动横向滚动2.支持图片自动的滚动播放3.底部的分页控件会高亮显示出当前的图片是哪一张 好了,既然已经分析出来了它的特点...JUST DO IT 想到滚动,大家首先想到的肯定是用 UIScrollView + UIImageView 的方式来实现,但是 UICollectionView 给我们提供了更好的选择,因为它本身继承自...UIScrollView 然后又支持横向滚动,所以使用 UICollectionView 来实现横向滚动效果是最好不过的。...= false collectionView.delegate = self collectionView.dataSource = self collectionView.backgroundColor...self.collectionViewFlowLayout.itemSize.width) return max(0, index) } } } 第二点,由于这个轮播图滚动支持手动滚动与自动滚动俩种方式

    2.1K20

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

    前言 Hello, 大家好,今天准备和大家继续分享如何利用 Swift 来实现一个网易云音乐的首页;上俩篇文章文章发布以后,我收获了不少小伙伴的关注与点赞,同时也得到了一些非常有用的建议,在这里再次感谢大家的认可...我们还可以用自定义的方式来实现分页滚动。...,可以通过重写这个函数来实现自定义的分页滚动,重写这个函数的逻辑思路如下: 定义一个坐标点 CGPoint 来记录最新滚动的偏移坐标 定义俩个值分别为 UICollectionView 可滚动的最大偏移量与最小偏移量也是就...0 每次滚动停止都会调用上述的函数 func targetContentOffset(...), 在这个函数中有一个参数 proposedContentOffset 记录了滚动的目标位移坐标,通过这个坐标和记录的上次滚动的坐标可以判断出是向左滚动还是向右滚动...decelerationRate = .fast } // 这个方法的返回值,决定了 CollectionView 停止滚动时的偏移量 override func targetContentOffset

    2.3K10

    Ios常用第三方框架(一)

    MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。...MHYahooParallaxView - 类似于Yahoo Weather和News Digest首屏的视差滚动。 SDRefreshView - 简单易用的上拉和下拉刷新(多版本细节适配)。...ZLSwiftRefresh - swift下拉刷新/上拉加载更多,支持自定义动画,集成简单,兼容UITableView/CollectionView/ScrollView/WebView。...ReplaceAnimation.swift - 基于 @ZeeYoung欧阳哲 同学的创意下拉刷新动画实现。值得称赞还有额外增加了“取消及滚动”效果支持。...WaterDropRefresh - 仿Path 水滴的下拉刷新效果 还有视差滚动。 ESRefreshControl - 仿新浪微博、百度外卖、网易新闻下拉刷新样式Demo(仅供参考)。

    5.5K31
    领券