Scrollable-GraphView.swift - 灵动感十足的自适应、可定制滚动曲(折)线图表库。...HBHorizontalTableView - swift,TableView 横向滚动小示例(仿照 AppStore 应用展示)。...此项目应该只为演示或学习之用,没有服务器 -- swift。 Atlas-iOS - 快速在iOS里集成聊天功能,类似开源版本的环信。...LxTabBarController - 改变了原生tabbar切换tab时的生硬效果,并加入滑动切换手势(有和界面上的其它手势发生冲突的风险,可根据具体项目予以关闭),swift版本。...Material.swift - 基于 Material Design 动画和图像框架库 (作者 Daniel Dahan)。
image.png 真是一个流畅的 tableView!一旦你开始做了,那就让我们做的更好吧! 无限滚动 在大多数应用中,服务器的数据点的个数往往会多于当前 tableView 中显示的单元格数量。...如果返回 NO,则在到达 API 数据末尾时,不会再不会发出任何请求。 因为你希望无限滚动,那就返回 YES,以确保总是请求新的数据。...例如:你正在使用一个 ASNetworkImageNode在 gallery 的每个页面中展示图像,当每个cell进入 Preload Range 时,会发送网络请求,并且在进入 Display Range...时进行图像解码。...那么在 node 到达该范围时,就可以开始显示。 通常,该范围的前侧大于后侧。当用户改变其滚动方向时,范围的大小也是相反的,以便于对应用户实际移动的方向。
HBHorizontalTableView - swift,TableView横向滚动小示例(仿照AppStore应用展示)。...TabBarController,支持自定义TabBarItem样式或添加动画 隐藏与显示 SlideTapBar - 滚动栏菜单,向上滚动时隐藏tabbar,向下滚动马上显示tabbar。...MediumScrollFullScreen - Medium的可扩展滚动页面,上下滚动时,全屏显示内容,并自然消隐上下菜单。...FSCalendar - 日历视图,带有微妙和平滑的滚动效果,可自定义外观 - 国人。...仿LOL滚动视图 - 仿LOL滚动视图。 答案选择切换页 - 将scrollview和tableview封装在一起,在初始的时候简单的将数据带上,就可以一页一页的左右来回滑动。
ReplaceAnimation.swift - 基于 @ZeeYoung欧阳哲 同学的创意下拉刷新动画实现。值得称赞还有额外增加了“取消及滚动”效果支持。...来自百度知道 iOS 小组的内部分享。...第二个Demo模拟了一个经典的FlowLayout,任意一个元素隐藏时,底下的元素需要自动“顶”上来,配合这个扩展,你可以在IB里连一连,选一选,不用一行代码就能搞定。...支持Cell、Label和Tableview高度自适应,致力于做最简单易用的AutoLayout库。 Neon.swift - 功能强大的 UI 布局神器。...placeholder_TextView - 带有placeholder的TextView:带有提示信息的textview,使用懒加载的思想,支持扩展、自定义,类似许多APP内部的意见反馈页面 。
想要实现的效果例如以下: 步骤: 1、新建一个基于Singal View Application 的project,然后删掉storyboard,在新建两个新文件 Main.xib 和 Main.swift...一个用于展示todo list 的 tableView,然后关联一个 tableView 变量到 Main.swift文件 2、接下来设置 Mian 为rootViewController,在AppDelegate.swift...3、然后在Main.swift 中编写一下TableView 的数据源和代理的方法。这里我们用的是 自己定义的 Cell。...记得绑定(同步骤1),Add.xib UI例如以下: 为了在Main.swift 中接收到 Add.xib 中用户输入的信息,我们在 Add.swift 定义一个协议。...,由 KCTextView 取代 UITextView,swift 中引用 OC 写的 API easy,新建一个 .h 。
---- 上拉刷新 现在多数APP做无缝的上拉刷新,就是当tableView滚动到最后一行cell的时候,自动刷新加载数据。...用一个属性来记录是否是上拉加载数据 /// 上拉刷新标记 var isPullup = false 滚动到最后一行 cell 的时候加载数据 func tableView(_ tableView: UITableView...在基类控制器的setupUI(设置界面)的方法里面,我们直接创建了tableView,那么我们如果有一个标记,能根据这个标记来选择是创建普通视图,还是创建访客视图。就可以很好的解决此类问题了。...则可以直接通过addTarget的方式为该视图中的按钮添加监听方法 这样做的代价是耦合度高,控制器和视图绑定在一起,但是省略部分冗余代码 ---- 调整未登录时导航按钮 如果单纯的在setupVistorView...字典转模型逻辑 上拉 / 下拉数据处理逻辑 下拉刷新数据数量 本地缓存数据处理 初体验 因为MVVM在swift中都是没有父类的,所以先说下关于父类的选择问题 如果分类需要使用KVC或者字典转模型框架设置对象时
Apple 设计大奖入围名单公布 Apple 设计大奖旨在表彰在多元包容、乐趣横生、出色互动、社会影响、视觉图像,以及创新思维等类别中表现出色的 App 和游戏。...作为一个额外的好处,在 TableView 的上下文中,可以使用更短的名称来引用嵌套协议委托(与所有其他嵌套类型一样): class TableView { weak var delegate: Delegate...一些代码库(值得注意的是,Swift 编译器本身)使用带有嵌套类型的大型闭包,并且它们受益于使用协议的抽象。...文章以示例结束,展示了如何使用这些技术来自定义一支蓝色铅笔或整套铅笔的外观。...通过在类型上使用 @dynamicMemberLookup 属性,我们可以重载该类型的 subscript 方法来更方便地访问其数据。但是,这也意味着缺乏编译时安全性。
但是在 debug 环境下从开发功能到滚动测试流程,一直都是没问题的。...开始时,真的是百思不得其解 ---- 开发环境: Xcode10.2.1 swift 5.0 涉及的类关系: 父类:BaseTableViewController 拥有成员变量 UITableView...问题症结: debug 模式下真机与模拟器调试,遵循的代理方法都可以正常执行; release 模式打包出来后,子类中覆写的 TableView 相关协议 func tableView(_ tableView...在查阅了大量的资料后,最终得出了这个怎么也没想到的结果。...Xcode 10.1 打包上线(若使用 swift 5 版本,此方案无效);xcode 10.2.1 swift UITableView部分协议方法不执行 在子类中要覆写代理实现的方法前,添加 @objc
前言: 双非本科菜鸡的春招有些坎坷,还记得第一次面试(2019年12月12号),带有一丝丝紧张的感觉跟字节跳动的一面面试官聊了56分钟,当初没复习啥,某学长的建议早面早知道问题所在,一路聊下来,还算是基础问题都答出来了...6 一面 40分钟 自我介绍 算法题: 两个队列实现栈 分类extension 在oc与swift区别 在什么时机加载(没答上来) oc与swift语言区别 tableview做了哪些优化 如何实现多个图片下载后合成一张图片...有一个第三方的视频播放器SDK,提供一些基本的API: 1)prepare:初始化,传入播放地址 2)play:开始播放 3)pause:暂停播放 4)seek:跳到某一时刻 5)release...:停止播放并释放资源 这些API都是同步的,可能会有耗时,并且该播放器对于调用的顺序有比较严格的要求,例如连续调用两次play,或者没有调用play就调用pause,都会造成异常。...比较 kingsiher图像库的异步加载原理 图像解码 事件传递与响应 阅读过哪些第三库源码分析一下 由于过了四五天了 二面有些忘记了。
SABlurImageView - 支持渐变动画效果的图像模糊化类库.PS与前几天推存类SAHistoryNavigationViewController是同一位作者。...PureLayout - PureLayout是iOS和OS X Auto Layout的终极API--非常简单,又非常强大.PureLayout通过一个全面的Auto Layout API扩展了UIView...来自百度知道iOS小组的内部分享。 UIView-FDCollapsibleConstraints - 一个AutoLayout辅助工具,最优雅的方式解决自动布局中子查看的动态显示和隐藏的问题。...第二个Demo模拟了一个经典的FlowLayout,任意一个元素隐藏时,底下的元素需要自动“顶”上来,配合这个扩展,你可以在IB里连一连,选一选,不用一行代码就能搞定。...支持Cell,Label和Tableview高度自适应,致力于做最简单易用的AutoLayout库。 Neon.swift - 功能强大的UI布局神器。
整体框架 首页搭建 1、导航栏的设置 先来看看效果图: ? 首页导航栏效果演示.gif 刚开始导航栏的颜色是透明的,随着tableView向上滚动时,导航栏主键显示颜色。...那么只要显示第一张或最后一张时,马上修改collectView的contentOffset即可瞒天过海,具体实现参考项目代码吧~ 2.2、向下拖拽时,图片会放大 其实也是监听tableView的滚动,改变轮播图中图片的高度即可...的willDisplay方法中,监听section的变化,刷新条件是:当滚动到最后一个section的第一个元素时,加载更多数据 func tableView(_ tableView: UITableView...其实我也这么觉得,初入RxSwift,不打算封装太多层,怕把自己绕进去了,所以就先这样写了~ 4、设置导航栏的titile日期 效果说明:随着列表的滚动,sectionHeader的日期会显示在导航栏上...,滚动到最新日期时,导航栏又显示回今日要闻。
text = "Cell \(indexPath.row)" return cell } 你可能已经想到,当你滚动到底部时,这将为设备的内存添加一千个 tableViewCell。...除此之外,每个 tableViewCell 在滚动期间都需要分配新内存。如果你快速滚动表视图,期间会动态分配许多小块内存,这个过程将使 UI 变得卡顿!...通过将屏幕上不再可见的 tableViewCell 放入队列中进行复用,并且当新 tableViewCell即将在屏幕上可见时(例如,当用户向下滚动时,下面的后续tableViewCell),表视图将从此队列中检索...(查看大图) 另外需要注意的是,当 UIActivityIndicatorView放置在启动页上时,不会生成动画,因为 iOS 只会将启动页 storyboard 生成静态图像并将其展示给用户。...保存图像时,取消选中 Alpha 复选框以取消 Alpha 通道。
相信大家平时在用 App 的时候, 往往有过这样的体验,那就是加载网络数据等待的时间过于漫长,滚动浏览时伴随着卡顿,甚至在没有网络的情况下,整个应用处于不可用状态。...(Cache)和获取图像,来使你的 App 具有更高的响应速度 无限滚动,无缝加载 提到列表分页,相信大家第一个想到的就是 MJRefresh,用于上拉下拉来刷新数据,当滚动数据到达底部的时候向服务器发送请求...首先,我先和大家介绍一个概念:无限滚动,无限滚动是可以让用户连续的加载内容,而无需分页。在 UI 初始化的时候 App 会加载一些初始数据,然后当用户滚动快要到达显示内容的底部时加载更多的数据。...UITableView 的行数并 Reload,那我之前说的 Prefetching API 在这种情况下就失去作用了,因为它起作用的前提是要保证预加载数据时 UITableView 当前的行数要小于它的总行数...如何避免滚动时的卡顿 当你遇到滚动卡顿的应用程序时,通常是由于任务长时间运行阻碍了 UI 在主线程上的更新,想让主线程有空来响应这类更新事件,第一步就是要将消耗时间的任务交给子线程去执行,避免在获取数据时阻塞主线程
前言 前段时间无意中发现了看知乎,一个知乎答案和用户的精选站。网站开发者是知乎用户苏莉安,他写了个爬虫从知乎抓取数据,而且还提供了 API 文档。...我们要处理两个 TableView(或者一个 ScrollView 一个 TableView) 的滚动,这是不科学的。...= CGFloat(item.rawValue) tableView.reloadData() } } 也谈谈 MVC 和 MVVM MVC 是个非常经典的概念,它最早来自于...关于面向协议编程 Swift2之后可以用 extension 给协议方法或者属性加上一个默认实现了,这使得 Swift 可以用协议模拟 Ruby 中用 module 实现的 mixin 效果,也就是通过协议扩展某个类的功能...,在刷新的时候会调用这个闭包,然后1秒后完成刷新。
熟练度不够的话,很多 Swift 的高级写法还得去翻文档才知道什么意思,所以就打算从0单排一个Swift的项目,而微博正好有 开放API , 所以这里就选择它了。 主页界面 ?...已不提供) 图片上传功能(API已不提供) 消息功能 发现功能 我的功能 SVProgressHUD 提醒功能 用到的技术点 TableView高度缓存 SDWebImage圆角处理 FMDB...数据缓存 OAuth授权 单张图片的高度计算 Cell滚动自动加载更多 撰写页面的动画处理 发布界面的Emoji处理 多图的展示 ......SVProgressHUD 在Swift5.0会crash,所以这个app里没有 toast 功能,坐等修复......该项目基本都是用的 “纯代码+纯Swift” 的方式写的,用的也是尽量新的 API, 萌新们想玩的话感觉还是可以上手的。
问题描述 我们首页有点复杂,因为结构是下面是一个横向滚动的 UIScrollView 上面是一个 UITableView 但是整体看起来是连贯的 所以上面的 UITableView 的高度就要算出来。...但是在 Xcode9运行时候发现 CELL 的高度代理竟然不走了,导致我计算高度的方法没有被执行,结果计算出高度为0....解决办法 _tableView.rowHeight = 0; _tableView.estimatedRowHeight = 0; 感谢2017@Swift群里面的 List提供的解决办法。...设置这两个属性之后,首页上面 UITableView 的数据果然出现了。 虽然解决了,但是首页因为多个 UIScrollView 导致十分滚动会卡顿。...这个最好的解决办法是抛弃左右滚动切换功能 这样最下面的 UICollectionView 就可以不用 直接整体一个 UITableView 这样就可以实现滚动顺畅。
系统内部的实现中如果布局引擎在布局时发现某个视图没有设置高度或者宽度约束那么就会去调用这个视图的intrinsicContentSize方法,如果这个方法返回了正常的尺寸则视图就按这个尺寸来进行渲染和展示...在设置约束依赖时将容器视图的上下左右分别依赖UIScrollView视图的上下左右边界,如果需要上下滚动则将容器视图中的最底部子视图的底部边界依赖容器视图的底部边界。...上面的约束设置实现视图滚动的机制也有一定的局限性!那就是一旦在容器视图中添加子视图时就需要重新调整容器视图的右边界和下边界的约束依赖。...然后在UITableViewCell的派生类的视图代码布局处或者在-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath...2.UIScrollView的滚动 MyLayout&TangramKit对于处理和UIScrollView进行结合时进行特殊处理,当将一个布局视图添加到滚动视图时,布局系统内部会负责处理滚动视图的contentSize
var baseURL: URL { return URL(string: "http://gank.io/api/data/")!...section,所以这个方法可实现,也可以不实现,默认返回的就是1,这给我们带来的一个迷惑点:【tableView是由row来组成的】,不知道在坐的各位中有没有是这么想的呢??...有的话那从今天开始就要认清楚这一点,【tableView其实是由section组成的】,所以在使用RxDataSources的过程中,即使你的setion只有一个,那你也得返回一个section的数组出去...中初始化刷新控件 为tableView设置刷新控件,并且在创建刷新控件的回调中使用output的requestCommond发射信号 tableView.mj_header = MJRefreshNormalHeader...sections,sections在ViewController已经绑定到tableView的items了,所以此时tableView的数据会被更新。
为了良好的交互体验,相信大家在对待scrollView无数据时的提示页都会使用一些第三方来定制,最典型的就是使用DZNEmptyDataSet。...嘿嘿,这个可以有,那我们接下来就来试试怎么通过协议的方式来避免上述情况,并且实现一行代码添加空白页功能 前言 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程...(一) iOS - Swift 面向协议编程(二) 之前的文章中提到了,协议除了起规范作用,还有别一个用处,就是赋予能力。...我们现在的目的就是让目标控制器或者目标视图在遵守我们的协议后,就可以有实现空白页的功能。...在遵守协议后使用了默认定制时,那你要怎么办?
其中的特例包括背景色,它的alpha值应该为1(例如不要使用clearColor);图像的alpha值也应该为1,或者在画图时设为不透明。...因此在cell不可见时,可以将其缓存起来,而在需要时继续使用它即可。...解决办法可参见后面的预渲染图像。 2.4.1.4 不要做多余的绘制工作。 在实现drawRect:的时候,它的rect参数就是需要绘制的区域,这个区域之外的不需要进行绘制。...做到前几点后,你的table view滚动时应该足够流畅了,不过你仍可能让用户感到不爽。常见的现象就是在更新数据时,整个界面卡住不动,完全不响应用户请求。...例如每次载入50条信息,那就可以在滚动到倒数第10条以内时,加载更多信息: - (void) tableView: (UITableView *)tableView willDisplayCell: (