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

《Motion Design for iOS》(三十八)

当请求返回时,我需要用UITableView来放置文章数据,每行一篇文章。一些app选择在数据返回时淡入列表,一些会将行一行行地滑动到位置上,而其他的则立即显示行,没有任何动画。...所以我首先让列表的透明度变为0,这样我就可以操作它,不让用户看到任何东西,直到我想让他们看见。...然后我会调用[self.tableView reloadData]将数据加载到列表行中去,这时候所有的行都在它们正常的位置上,但因为整个列表透明度为0并且是隐藏的,屏幕上什么都看不见。...我遍历现在屏幕上可见的行并且移动UITableView将行都放到屏幕底部。我通过改变列表的位置,将其移动到整个列表高度的下方来达到目的,这样每行都会藏在屏幕的底部了。...因为我在一个循环中,我可以同步地使用循环次数变量b来保持动画的时间,只需要操作每行的动画时间间隔即可。这可以确保每一行的动画之间都是同样的时间,来达到一个好的波浪形动作。这就是全部了!

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

    UITableView图文混排自动布局滑动优化实战

    AutoLayout和手动计算高度 毫无疑问,使用AutoLayout会明显的比手动计算高度慢,那么我为什么要用AutoLayout呢,因为实在太方便了,而且视图太复杂,产品改的太频繁,手动计算实在工作量太大...,对于UIImageView就可以 -(void)endDisplay{ [imageView setImage:nil]; [imageView stopAnimating]; } 3...4.GIF特殊处理 如果GIF太多了,做完以上优化,会发现滑动到GIF的时候还是很卡,原来是因为SDWebImage直接把下载完的GIF内容直接填充给UIImageView,会直接按帧把动画渲染出来,边滑动边渲染图片到...最后要做的就是把滑动和GIF动画分开,想到的是NSRunLoop,因为滑动事件是在NSEventTrackingRunLoopMode下的,使用NSDefaultRunLoopMode就可以保证不在UI...动画的时候取帧和渲染GIF。

    1.3K10

    iOS点击TableView的cell显示弹出动画

    ,我们去到点击cell的方法,也就是 (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath...方法,代码如下: #pragma mark TableView Delegate // 选中某一行 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath...= CGAffineTransformMakeScale(1.0, 1.1); // 纯白视图的透明度设为不透明,这样就会覆盖cell视图 self.tempView.alpha...,我们来拆分一下,整个动画分为三个过程: 第一个过程是加阴影,新创建一个对应的cell显示出来,在动画中稍微增大cell凸显效果,同时有一个纯白视图慢慢覆盖cell视图; 第二个过程是炸开纯白视图,在动画中将其的大小设为整个屏幕大小...动画是使用的最基本的UIView动画,教程可以看我这篇博客,使用起来还是很方便的,延迟执行我用的GCD的方法,也可以用别的你熟悉的方式。

    1.5K10

    iOS开发之性能优化

    假如正在玩一款手游,首先一定不希望玩着玩着突然闪退,然后就是不希望卡顿,其次就是耗电和耗流量不希望太严重,最后就是安装包希望能小一点。...对于操作系统和设备开发商来说,耗电优化一致没有停止,去追求更长的待机时间,而对于一款应用来说,并不是可以忽略电量使用问题,特别是那些被归为“电池杀手”的应用,最终的结果是被卸载。...,则立即暂停动画.通常来说,你可以通过监听 UIApplicationWillResignActiveNotification或UIApplicationDIdEnterBackgroundNotification...当然,瘦身和减负虽好,但需要注意瘦身对于项目可维护性的影响,建议根据自身的项目进行技巧的选取。 App安装包是由资源和可执行文件两部分组成,安装包瘦身从以下三部分优化。...为了避免重复无意义的计算,需要缓存高度。 怎么缓存? 字典,NSCache。 UITableView-FDTemplateLayoutCell if !

    1K00

    iOS实现TableView中Cell出现时弹出动画

    发现一个简单的方式可以让TableView变得非常的炫酷,语言描述太苍白,直接看图吧: 在任何有cell先出现在屏幕上的时候都会有这么一个效果,非常的流畅,也非常有意思(忍不住不停地把玩。。)。...实现起来也非常简单,iOS原生支持,几行代码就可以搞定,在众多的tableview代理方法中,我们利用下面这个方法: -(void)tableView:(UITableView *)tableView...进行操作,我们就在这个方法里面加上动画代码,这个动画说白了就是把cell从一个小的变成正常大小,使用UIView简单动画就可以实现(关于UIView简单动画可以看我这篇博客:iOS基础动画教程)。...代码如下: //给cell添加动画 -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath...:(NSIndexPath *)indexPath { //设置Cell的动画效果为3D效果 //设置x和y的初始值为0.1; cell.layer.transform = CATransform3DMakeScale

    1.3K10

    iOS开发常用之UI下拉刷新

    MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。...KYJellyPullToRefresh - 实现弹性物理效果的下拉刷新,神奇的贝塞尔曲线,配合UIDynamic写的一个拟物的下拉刷新动画。...ZLSwiftRefresh - swift下拉刷新/上拉加载更多,支持自定义动画,集成简单,兼容UITableView / CollectionView / ScrollView / WebView...动画 - 封装了一下,使用的时候只要两行代码。一些动画的飞机稿,都是一些单独分离出来的用于测试的子动画,现在统统归类一下。...简单来说是利用CGGlyph,字符图形转换成cgpath,然后绘制strokeEnd动画。把timeoffset和scrolloffset结合就行了。

    3.7K10

    IOS开发:教你实现手机直播系统平台评论功能效果

    即使UITableView有复用机制,也还是不行的,整个效果有一闪一闪的。可以试一下就知道了。 那么不能刷新,我们就用插入第n行,并且滚动到第n行 没错 . . . 就是这样实现效果了 . . ....,它并没有从下往上一直顶上去,而是直接一直显示,没有动画效果。...原因,在于消息所在的高度还不过我们设置UITableView的高度,滚动到第n行的时候并没有效果。 那么我们换一个思路,来实现,那就是从下往上添加数据。 这样不管你数据多少都会有动画。...再来看一下我们实现的效果图,不然文字又看累了 3.png 厉害了,这个就是我要的效果 那么实现的思路就是,我们一直添加到数据源的第一条,这样不管数据多少,是不是都会有动画效果,脑袋里想象一下,答案是肯定的...那么问题又来了,一直往第一条添加,是有动画了,但是他是从上往下的 从上往下就从上往下,我们给所有的区域旋转180度,不就变成了从下往上了。 代码怎么写呢?

    2.1K00

    iOS-UI控件之UITableView(一)

    UITableView 介绍 UITableView 是用来用列表的形式显示数据的UI控件 举例 QQ好友列表 通讯录 iPhone设置列表 tableView 常见属性 // 设置每一行cell...:(UITableView *)tableView; 多少行 //调用数据源的下面方法得知每一组有多少行数据 - (NSInteger)tableView:(UITableView *)tableView...@"b",@"c",@"d", nil]; } tableView常用方法 //设置分组的头部数据 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection...:(NSInteger)section { return @"头部"; } //设置分组的尾部数据 - (NSString *)tableView:(UITableView *)tableView...),而且每一行用的不一定是同一种UITableViewCell,所以一个UITableView可能拥有不同类型的UITableViewCell,对象池中也会有很多不同类型的UITableViewCell

    1.8K130

    求职笔记-iOS篇

    动画耗时在于: 图片加载、alpha透明、动画代码混乱、离屏渲染、帧动画过多、布局计算、遮罩、图片过大; 某些问题不可避免,比如说图片加载、帧动画等,以下是自己总结的一些经验: CADisplayLink...避免使用alpha透明的图片; 使用GCD和CAAnimation来管理动画的流程; 使用NSOperationQueue或许也是解决方案。...减少遮罩以避免离屏渲染,避免光栅化视图的频繁更新; 使用代码布局,避免autolayout; 聊天室中UITableView的优化 聊天室中,消息的显示使用的是UITableView; 每一条消息是单独的...HTTP协议 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式 http请求由三部分组成,分别是:请求行、消息报头、请求正文。...,分别是:状态行、消息报头、响应正文。

    1.2K60

    你可能需要为你的 APP 适配 iOS 11

    ,动画的操作是观察tableView的contentOffset变化后执行的,异常动画发生在tableView reloadData之后,也就是说tableView reloadData之后,tableView...属性,在storyboard中也支持这个设置,对于HUD的image需要设置另一个iOS11新增的属性:largeContentSizeImage,关于这部分更详细的讨论,可以参考 WWDC2017 Session...从iOS 7以来,我们在整个操作系统中都有这些半透明的bars,苹果鼓励我们通过这些bars绘制内容,我们是通过viewController 的edgesForExtendedLayout属性来做这些的...,就会造成动画的异常,因为在估算行高机制下,contentSize的值是一点点地变化更新的,所有cell显示完后才是最终的contentSize值。...因为不会缓存正确的行高,tableView reloadData的时候,会重新计算contentSize,就有可能会引起contentOffset的变化。

    1.7K60

    iOS-UITableView 详解(一)

    iOS-UITableView 详解 (一) ✨建议收藏,用到时候一查就明白了 UITableView可以说是iOS开发中最重要的控件之一,它的使用非常广泛,今天我们来学习UITableView的使用...分组样式UITableViewStyleGrouped UITableViewCell UITableView中每行都是一个UITableViewCell,UITableViewCell的样式我们可以通过...; } //返回分组的头标题 -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section...:(NSInteger)section { return 50; } // 返回行高 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath...时,我们依然实现返回分组数,和返回分组头标题两个方法,这时当我们滑动tableVIew时,头标题还会自动停留的屏幕最上方,效果如下 ?

    1.4K50

    IOS开发系列——UIView专题之五:常用开发技巧篇

    5UIView开发技巧 5.1常用技巧 5.1.1使用半透明View与不透明SubView 半透明背景视图只能用此种方法设置颜色,否则subView也是半透明的。...对于每个触摸操作都会有一个UITouch对象,UITouch对象用来表示一个触摸操作,即一个手指在屏幕上按下、移动、离开的整个过程。...中 1// controllerA中有一个UITableView, UITableView里有多行UITableVieCell,cell上放有一个button 2//在controllerA中实现:...----UIView动画 http://blog.csdn.net/huifeidexin_1/article/details/7597868 UIView动画(过渡效果)的学习笔记 http:/...blog.163.com/wzi_xiang/blog/static/65982961201211104227946/ UIView动画效果的四种调用方式 http://www.cnblogs.com

    1.2K20

    你可能需要为你的 APP 适配 iOS11

    前言 前几天发现在做的APP在iOS11系统上动画有异常,在其他系统的设备上都是正常的,动画的操作是观察tableView的contentOffset变化后执行的,异常动画发生在tableView reloadData...属性,在storyboard中也支持这个设置,对于HUD的image需要设置另一个iOS11新增的属性:largeContentSizeImage,关于这部分更详细的讨论,可以参考 WWDC2017 Session...为任意你想设置的值,包括0,如下图所示: 2、安全区域(Safe Area) 如下图:照片应用程序 从iOS 7以来,我们在整个操作系统中都有这些半透明的bars,苹果鼓励我们通过这些bars绘制内容...值的变化,如果是有动画是观察这两个属性的变化进行的,就会造成动画的异常,因为在估算行高机制下,contentSize的值是一点点地变化更新的,所有cell显示完后才是最终的contentSize值。...因为不会缓存正确的行高,tableView reloadData的时候,会重新计算contentSize,就有可能会引起contentOffset的变化。

    2.5K00

    iOS开发UI篇--一个可扩展性极强的树形控件

    然而IOS自带控件中并不存在树形控件,我们要在IOS开发中使用树形控件,通常需要自己扩展UITableView列表控件。 现在在这里开源一个自己写的高扩展性,高复用性的IOS树形结构控件。...三、实现原理 树形结构的列表用的其实就是UITableView控件,但是如何能够让UItableView能够动态的增加和删除指定的行数的cell是实现树形结构的关键所在。...这时候我们需要用到两个UItableView自带的行数: - (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation...cells,第二个函数用来在指定的位置删除cells,并且这二个函数都自带多种动画效果,让删除和插入的过程不至于太突兀、有种渐变的感觉,具有良好的用户体验。...对于这几个动画做了尝试: UITableViewRowAnimationFade : 渐变效果 UITableViewRowAnimationRight : 右边进入,右边消失 UITableViewRowAnimationLeft

    1.3K00

    优雅的处理网络数据,你真的会吗?不如看看这篇.

    ,然后在控件底部显示一个 Loading 动画,待请求数据返回后,Loading 动画消失,由 UITableView 或者 UICollectionView 控件继续加载这些数据并显示给用户,效果如下图所示...UITableView 的行数并 Reload,那我之前说的 Prefetching API 在这种情况下就失去作用了,因为它起作用的前提是要保证预加载数据时 UITableView 当前的行数要小于它的总行数...没找到,则为指定的 url 创建一个新的下载线程 print("在 \(indexPath.row) 行创建一个新的图片下载线程") if let dataloader...图片缓存 虽然我在上面对我的应用增加了并发操作,但是我一看 Xcode 的性能分析,我不禁陷入了沉思,我的应用程序太吃内存了,假如我不停的刷,那我的手机应该迟早会把我的应用给终止掉,下图是我刷到 200...行的时候的性能分析图: 内存 image 磁盘 image 可以看到我的应用的性能分析很不理想,究其原因在于我的应用里显示了大量的图片资源,每次来回滚动的时候,都会重新去下载新的图片,而没有对图片做缓存处理

    1.4K20
    领券