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

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

我们知道在 UICollectionView 的属性中,有一个分页的属性:isPagingEnabled,当设置成 true 时,每次滚动的位移量等于它自身 frame 的宽度;当设置这个分页属性,它的默认值是...其实当你动手实践,你会发现这样实现后会有一个非常头疼的 bug,那就当 item 滚动的时候会出现遮挡,这用户体贴也太差了。...image 有人要问那是不是 UICollectionView 这个控件就只能按照屏幕的大小来分页呢!答案当然是否定的。我们还可以用自定义的方式来实现分页滚动。...停止滚动时的偏移量,可以通过重写这个函数来实现自定义的分页滚动,重写这个函数的逻辑思路如下: 定义一个坐标点 CGPoint 来记录最新滚动的偏移坐标 定义俩个值分别为 UICollectionView...播客 终于讲到最后一个 UI 了,先看下效果: image 经历过构建上面这么多 UI ,想必看到这个效果,大家都心知肚明了,还有比用 UICollectionView 更简单的方式了吗?

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

UIScrollView的一步步实现1 简介1.1 工作原理1.2 UIScrollView常见的几个重要控件1.3 UIScrollView常见的重要属性1.4 手工代码实现拖动2 三个重要属性的进

当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容。 普通的 UIView 不具备滚动功能,不能显示过多的内容。...缩放结束 scrollView 本身的 frame 并没有发生变化 缩放结束 imageView 本身的 bounds 也没有发生变化 缩放结束 imageView 的 center 发生了变化...1.2 UIScrollView常见的几个重要控件 UITableView UICollectionView UITextView 1.3 UIScrollView常见的重要属性 属性名 作用 contentSize...设置UIScrollView的滚动范围 contentOffset UIScrollView当前滚动的位置 contentInset 增加滚动视图四周的增加滚动范围 bounces 是否有弹簧效果,默认是开启的...scrollView 要滚动就必须设置了滚动视图的 contentSize contentSize 的 width 决定了水平方向滚动距离 contentSize 的 height 决定了垂直方向滚动距离

1.5K60

iOS 封装跑马灯和轮播效果

,可以设置时间间隔、渐进速率、是否循环、分页宽度和间隔,还支持高度自定义分页视图的控件。...一、实现方法 ①、 首先用UICollectionView和计时器实现一个基本的水平滚动效果,如下图,这个太简单就不在此详述。...iOS UICollectionView ②、对比上面的效果图,我们还需要解决分页的宽度和循环滚动的问题。...自定义分页宽度:默认的分页宽度是UICollectionView的宽度,所以当分页宽度的不等于UICollectionView的宽度或分页间隔不等于0时会出现错误,这时就需要我们通过自定义UICollectionViewFlowLayout.../** 返回值决定了collectionView停止滚动时的偏移量 手指松开执行 * proposedContentOffset:原本情况下,collectionView停止滚动时最终的偏移量 *

4.1K40

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

▐ 4.2 自定义菜单样式 可以看到上面没有一行设置菜单样式的代码,那是因为设置菜单使用的是默认的样式,除此之外,菜单的样式还是可以自定义的, GFPageController为大家提供了下面14个参数来控制菜单的样式显示...实现: 知道了原理,那就开始构思: 1、我的实现思路是用UICollectionView来实现滚动菜单; 2、需要两个UICollectionView,UICollectionViewCell的文字内容一样...的滚动需要同步; #pragma makr - 同步滚动 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { UICollectionView...起初我的想法是用两种图片拼接起来,一张长方形,一张三角形,后来为了自定义性更高一点,改成了用UIBezierPath来进行绘制,代码如下: 自定义一个View继承自UIView: #import "GFMaskView.h...self.scrollView.bounds; [self.scrollView addSubview:vc.view]; } #pragma mark - UIScrollViewDelegate // 滚动动画结束调用

1.3K20

iOS自定义的emoji表情键盘 原

iOS自定义的表情键盘 一、关于emoji表情         随着iOS系统版本的升级,对原生emoji表情的支持也越来越丰富。...开发表情键盘的思路         首先为了实现跨平台,无论iOS端,andorid端还是web端,都要有一个相同的标准,这个标准就可以是国际Unicode编码,我们的思路是将表情文字进行unicode编码再进行传输...textField上      } //翻页对分页控制器进行更新 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{     CGFloat ...: @property (nullable, readwrite, strong) UIView *inputView;    - (void)reloadInputViews; inputView我们可以设置...textView和textField成为第一响应时的弹出附件,如果我们设置或者设置为nil,则会弹出系统键盘,reloadInputView方法可以使我们刷新这个附件视图,通过这两个,我们可以非常轻松的实现键盘的切换

2.9K10

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

标准的UICollectionView包含三个部分,它们都是UIView的子类:     • Cells 用于展示内容的主体,对于不同的cell可以指定不同尺寸和不同的内容,这个稍后再说     • Supplementary...装饰视图 这是每个section的背景,比如iBooks中的书架就是这个         不管一个UICollectionView的布局如何变化,这三个部件都是存在的。...关于详细的自定义UICollectionViewLayout和一些细节,我将写在之后一篇笔记中。         ...需要注意根据滚动方向不同,header和footer的高和宽中只有一个会起作用。垂直滚动时section间宽度为该尺寸的高,而水平滚动时为宽度起作用,如图。     ...* kMyInfoCollectionCellHeight + 10;     //确定是水平滚动,还是垂直滚动     UICollectionViewFlowLayout *flowLayout=

47530

iOS学习——tableview中带编辑功能的cell键盘弹出遮挡和收起问题解决

UITableViewController和UICollectionViewController中显示会存在一些bug,在GitHub中的MBProgressHUD框架官方文档中就有提到要避免将HUD添加到具有复杂视图层次结构的某些...UIKit视图(如UITableView或UICollectionView),UITableViewController和UICollectionViewController中的self.view实际上就是对应的...UITableView或UICollectionView,所以会出现一些莫名其妙的bug,显示不出来或者显示的位置不对。...翻译:你可以在任何视图或窗口上添加HUD。 然而,避免将HUD添加到具有复杂视图层次结构的某些UIKit视图(如UITableView或UICollectionView)是一个好主意。...二 主控制器为UIViewController或其子类   其实最开始我就是用的UITableViewController,结果要提示的要提示的tips总是显示设定的位置上,后来才得以发现的这个bug

3.9K80

教你制作可移动的导航栏

见下图紫色圈内 网易新闻客户端 本文将会介绍这类导航栏的做法,方法很多,但关键思路是一样的,希望给大家带来帮助 一、最顶的滚动条 上面可移动的那个条,我们会想到带有滚动功能的控件,无非就是UITableView...、UICollectionView、UIScrollView,在此,我们优先选择scrollView,至于那一个个栏目,我的思路是UIButton即可。...如果选择的是UICollectionView,那一个个栏目便是UICollectionView的item 1、创建常量 private let titleWidth : CGFloat = 80 private...//选择的栏目 private var sliderView:UIView?//指示器 private var topScroll:UIScrollView?...setTitleColor(UIColor.orange, for: .normal) // 将rect由rect所在视图转换到目标视图view中,返回在目标视图view中的rect 相对于当前显示窗口

1.6K60

Ios常用第三方动画框架(三)

droptogif - droptogif视频拖拽到应用窗口自动转换为 GIF 动画(其转换进程动画效果也超赞)。...iCarousel - iCarousel是一个类,它继承于UIView。用于简化实现各种类型的旋转木马(分页滚动视图),无限轮播 ,iOS开发之多图片无缝滚动组件封装与使用。...KYAnimatedPageControl - 除了滚动视图时PageControl会以动画的形式一起移动,点击目标页还可快速定位。支持两种样式:粘性小球和旋转方块。...CardsAnimationDemo - swift,《使用 UICollectionView 实现的一个卡片动画》不是直接操作所有 UIView 和 CALayer 的 transform3D 属性来实现整个效果的...,而是使用 UICollectionView 来完成所有的视图管理和实现。

9.1K30

iOS 中的事件响应

往前遍历子视图重复执行 指的是按照 FILO 的原则,将其所有子视图按照「添加的先遍历」的规则进行命中测试。...当倒计时结束前,如果用户的手指发生了移动,直接滚动内容视图,不会将该事件传递给对应的子视图; 当倒计时结束时,如果用户的手指位置没有改变,则调用自身的 -touchesShouldBegin:withEvent...,默认为YES,如果设置为NO,则一旦开始跟踪事件,即使手指进行移动也不会取消已经传递给子视图的事件,即滚动视图不会再滚动。...UICollectionView 父 view 添加手势,其内部代理 didSelectItemAt 触发 tapViewGesture.delegate = self override func.../// hitTest返回为父View,则返回true,手势生效; /// 如果返回为UICollectionView,则返回false,手势生效,UICollectionView的didSelectItemAt

2.6K11

Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

上周我分享了一篇关于 UICollectionView 自定义布局实现 Cover Flow 的文章(文章直通车),这也是我分享的关于 UICollectionView 系列的第四篇文章了,那今天我还是继续给大家带来...的时候,将需要添加到 UICollectionView section 里的 headerView 和 footerView 先注册一下,它里面的三个参数分别代表的是: 1.所要添加视图的类本身,例如...Sticky Section Header 是用追加视图实现的一种效果,具体表现为当 UICollectionView 滚动的时候,只要当前 section 的 headerView 向上滚动到最顶部的时候...添加手势,根据手势提供的三种状态,分别调用上面的四个方法,来实现拖拽排序;另外,既然 Cell 的顺序会被调整,那我们还得及时的更新数据源,来保证视图刷新,导致拖拽的结果被还原,具体实现代码如下:...但当我真正的去整理它的一些技术点时,我发现它实在是太灵活了,以前觉得追加视图,装饰视图这些东西很简单,几行代码的事情,但事实上,当你想要去实现一些高度自定义的界面的时候,你才会认识到自己的不足,你并没有对这些知识有更深层次的认知

2K10

MJRefresh源码分析 原

UIView+MJExtension类别提供了对UIView组件位置和尺寸的快速访问方法,并且都支持快速获取和设置: @property (assign, nonatomic) CGFloat mj_x...这两个组件是作为子视图添加在UIScrollView上的,因此和UIScrollView的原生头尾视图都不影响。...UIScrollView+MJRefresh类别在开发者设置mj_header和mj_footer属性时,将这两个组件添加为当前滚动视图的最下层子视图,为了满足某些自动加载的需求,这里面有用runtime...尾部刷新组件的编写逻辑和头部刷新组件的编写逻辑基本一致,MJRefresh中的尾部刷新组件分为了两类,一类是刷新完成自动消失的,一类是自动刷新,刷新完成不会自动消失,只是改变状态。...MJRefreshAutoStateFooter可以自定义其各个状态的文案。

66110

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

引 开发中我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往会更加方便。...本文就介绍纯用代码创建UICollectionView的简单示例,效果如下图: 实现 如图所示,视图由一个个方块组成,每个方块中有一张图片以及一个标题文字。...自定义Cell 根据UITableView的经验。首先看每个方块,也就是每个cell怎么呈现,这里的cell明显是自定义的,我们用一张图片填满cell,同时在底部居中的位置放置一个label。...不同之处在于UICollectionView需要一个布局参数来决定cell是如何布局的,默认是流水布局,也就是我们最常见的形式,也就是上面图里的形式;此外,UICollectionView除了垂直滚动,...代码中注释了一行,就是用来设置滚动方向为水平的,效果如下: 同样的内容,滚动方式变化,呈现的效果也会变化。

1K00

iOS实例——滑动列表展现隐藏顶部视图

引 项目中需要一个效果:下滚列表时顶部的自定义视图不移动,上移时隐藏顶部视图,提高列表的展现范围。...在此基础上海加了一个隐藏列表时的动态渐入渐出效果,如下: 实现 实现的要点是,顶部的视图要随着列表的滚动滚动,且列表最上是可以滚动到屏幕顶部的,最下就是滚动到一个固定的位置就不再往下滚动了,至于渐变效果只要能控制滚动自然也能控制随着滚动去改变...,就必须获知列表的滚动效果,这里我们在自定义的顶部视图类中加一个UIScrollView属性,在初始化的时候就将我们的列表赋给这个属性(UITableView是UIScrollView的子类):...这里我们利用UIView的一个Delegate:willMoveToSuperview:,它会在我们的视图添加到视图上时被调用,在这个代理方法中我们就添加对列表的contentoffset值的观察,...每次这个值变化时就调用处理方法: #pragma mark - UIView Delegate // 在被添加到界面上时就添加对contentoffset的观察 - (void)willMoveToSuperview

1.8K10
领券