展开

关键词

UITableView性能优化-中级篇

进阶篇 最近遇到一个需求,对tableView有中级优化需求 要求 tableView 时候,到哪行,哪行图片才加载并显示,过程中图片不加载显示; 面跳转时候,取消当前图片加载请求 YYCache中是否有该url,有话,直接读取缓存图片数据,没有话,走图片下载逻辑,并缓存图片 问题所在: 如上设置,如果我们cell一行有20行,面启时候,直接滑到最底部,20个cell indexPath 被调用了20次,不符合 需求1要求 解决办法: cell每次被渲染时,判断当前tableView是否处于状态,是话,不加载图片; cell 结束时候,获取当前界面内可见所有 runloopDemo.gif 效果如上 时候不加载图片,结束加载图片-满足 结束,之前过程中cell会加载图片 => 不满足需求 版本回到Runloop之前 - git reset 答:其实是有,简单来说YYWebImage 可以拆成两部,默认情况下,我们拿到回调,是走了 download && cache流程了,这里我们多做一步,取出cache中该url路径对应图片,

50120

Ios常用第三方框架(二)

HBHorizontalTableView - swift,TableView 横向小示例(仿照 AppStore 应用展示)。 文字及图片可扩展输入栏,汽泡效果等聊天核心特性,及自布局完善。 DLSlideView - DLSlideView对常见顶部Tab点击、滑做了封装。 它使用基于ViewControllercontainer特性(而不是scrollview)来管理各个子面,以支持,源码推荐说明。 横向展示文本内容自定义cell - 可以横向展示文本内容自定义cell,根据文本。 实现教程 jingDongFenLei - 简单仿写京东类中多级面。

1.2K60
  • 广告
    关闭

    腾讯云精选爆品盛惠抢购

    腾讯云精选爆款云服务器限时体验20元起,云数据库19.9元/年起,还有更多热门云产品满足您的上云需求

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

    【iOS】仿知乎日报,RxSwift-Part1-首搭建

    导航栏效果演示.gif 刚开始导航栏颜色是透明,随着tableView向上时,导航栏主键显示颜色。 navigationBar.isTranslucent = false 样式设置完后,开始监听tableview tableView.rx .contentOffset 那么只要显示第一张或最后一张时,马上修改collectViewcontentOffset即可瞒天过海,具体实现参考项目代码吧~ 2.2、向下拖拽时,图片会放大 其实也是监听tableView,改变轮播图中图片高度即可 我在tableViewwillDisplay方法中,监听section变化,刷新条件是:当到最后一个section第一个元素时,加载更多数据 func tableView(_ tableView到最新日期时,导航栏又显示回今日要闻。

    50810

    UIScrollView

    frame是视图在屏幕中展示位置和大小,也就是可视区域位置和大小。 contentSize是scrollView视图内部内容可以区域大小,也就是scrollView视图内容实际大小。 contentOffset是scrollView实际区域左上角与视图可视区域左上角距离。 pagingEnabled是是否以一大小整体进行,也就是用来实现翻效果。 UIScrollView一些常用代理方法如下: #pragma mark - UIScrollViewDelegate //监听,根据scrollView.contentOffset来做业务逻辑 用于停止时候开启一个逻辑,比如视频自播放(面停止后,开启视图前暂停gif或者视图播放) - (void)scrollViewDidEndDecelerating:(UIScrollView 上图是我在知乎首一个截图。 首先,整个从上而下它是一个tableView+collectionView。

    33020

    关于首设计框架和一些细节处理

    关于首设计框架和一些细节处理析 下面是首界面预览图 ? 第一部 ? 推荐预售和商品 可以横向 出现 ViewMore 跳转到对应频道面 切换频道可以切换对应栏目内容 如果两者都没有数据隐藏 第四部 ? 我们 Header 是很高呀 完全行不通呀 后来继续找了几个库 添加 删除 那几天把我折腾 差点要封掉 后来终于找到了一个第三方 可以满足90%需求 只是底部又是会多出40高度 法联 bug 因为放在 TableView 随着会刷新表格 对象会重新生成 很难和下面频道面联 3 为什么整体不用 UICollectionView 上面是 Header? 这是之前没做任何处理 显示结果 导致下面频道还没有在最上面时候 下面 导致上面法联走了。

    30320

    iOS 11 安全区域适配总结

    内容包括五个部:问题原因析、adjustContentInset属性计算方式、什么情况下tableView会发生内容下移、有哪些解决方法、解决这个问题时遇到另外一个小问题。 原因析 原因是iOS 11中ControllerautomaticallyAdjustsScrollViewInsets属性被废弃了,所以当tableView超出安全区域时系统自调整了SafeAreaInsets 关于什么情况下会发生内容下移问题,本文第三部有介绍。 2. 安全区域概念 系统自调整tableView内容偏移量,是根据安全区域来调整。安全区域是iOS 11新提出,如下图所示: ? 五、遇到另外一个与安全区域tableView内容下移问题 我作品tableView下移了约40pt,这里是否跟安全区域有关呢? ? 查了下面结构,tableView父视图frame在navigationbarbottom之下,tableView在父视图安全区域内,打印出来tableViewSafeAreaInset值也是

    725100

    iOS 11 安全区域适配总结

    内容包括五个部:问题原因析、adjustContentInset属性计算方式、什么情况下tableView会发生内容下移、有哪些解决方法、解决这个问题时遇到另外一个小问题。 原因析 原因是iOS 11中ControllerautomaticallyAdjustsScrollViewInsets属性被废弃了,所以当tableView超出安全区域时系统自调整了SafeAreaInsets 关于什么情况下会发生内容下移问题,本文第三部有介绍。 2. 安全区域概念 系统自调整tableView内容偏移量,是根据安全区域来调整。 五、遇到另外一个与安全区域tableView内容下移问题 我作品tableView下移了约40pt,这里是否跟安全区域有关呢? 查了下面结构,tableView父视图frame在navigationbarbottom之下,tableView在父视图安全区域内,打印出来tableViewSafeAreaInset值也是

    2.5K20

    React-Native iOS 列表(ListView)优化方案

    它可以改善长列表性能,默认值为true. 这对于大ListViews来说是一个非常重要。在Android, overflow值通常为hidden. 第二种方法里面,能够比较好解决屏幕外 cell 内存问题,但是和 native tableview 相比,并没有 native cell 重用机制完美,那么,我们可以讲 native tableview 如果你希望有一个界面能够达到流畅话,所有处理都需要在 16ms 内完成,但是这又造成了 onScroll 都要去刷新面,导致这样交互会非常非常多,导致你从 JS,到 native bridge 当我们在进行列表展示时候,如果数据量不是特别庞大(不是),且界面比较复杂时候,方案1能够比较好解决性能问题,而且操作起来比较简单,只需要对 listview 一些属性进行基本设置。 当我们需要展示很多数据时候(不是),我们可以使用方案2,对那些超出屏幕外,对他进行组件最小化 当我们需要展示大量数据(可以),我们可以通过方案3/4,来达到重用

    10120

    iOS14开发-UIView

    内容可。 数据联 在某一列时候,重新设置联显示数据,然后进行刷新操作。 UIScrollView、UIPageControl UIScrollView 控件 三个重要属性 contentSize:UIScrollView 范围。 contentInset:ScrollView内容相对于 UIScrollView 上下左右留白。 UIPageControl 面指示器 一般配合 UIScrollView 使用。 否则 点击索引不会自到指定位置 return index } } 自定义UITableViewCell 用 3 种自定义 Cell 方式别实现下面案例: iPhone

    28810

    模拟京东商城实现导航条隐藏功能

    :.gif 需求说明: 1.导航条隐藏功能 2.界面向上时候,导航条隐藏 3.界面向下时候,导航条显示 ---- 层次结构析: 核心思路:导航条必须隐藏,显示顶部类似于导航条控件 2.png 思路②.顶部成三个模块部相互独立: 顶部时间工具条自己一个View 导航条自己一个View 按钮VIew自己一个独立View 内容tableView自己独立一个View就不用说了 -- (怎么知道是向上还是向下) 思路1:tableVIew本质是scrollview,判断scrollview方向,通过contentOffset 思路2: 使用KVO,监听tableVIew ; @end tableView控制器,还是一样通过KVO监听tableViewcontentOffSet,然后在observeValueForKeyPath 方法中,由于法直接控制外部VC界面属性 10.png 解决办法:Y值虽然是0法进行判断,但是可以通过tableView高度进行判断!

    452120

    Xcode10.2 继承UITableView协议失效

    前言:在这次App版本迭代进入集成测试阶段尾声,正式环境打包release环境后,测试回归发现许多包含 tableView 面都法响应点击事件。 但是在 debug 环境下从开发功能到测试流程,一直都是没问题。 问题症结: debug 模式下真机与模拟器调试,遵循代理方法都可以正常执行; release 模式打包出来后,子类中覆写 TableView 相关协议 func tableView(_ tableView ) 方法法正常执行,导致面显示错误与点击事件响应; 问题原因: Xcode 10.2 版本打包编译 bug。 Xcode 10.1 打包上线(若使用 swift 5 版本,此方案效);xcode 10.2.1 swift UITableView部协议方法不执行 在子类中要覆写代理实现方法前,添加 @objc

    51060

    TableView优化之快速滑忽略加载

    = 说以下主体思路,VVebo作者认为,当用户快速滑时候,事实上他对滑过程中内容是不关心,他只关心结束处内容,那么用户不关心内容她就选择了不加载。 这个代理在手指即将结束拖时候出发,他会告诉外界当前速度及这次会位置。 这是依靠着上述四点,VVebo才获得了完美体验,其思路也是我们开发中可以学习和借鉴。 ---- TableView解耦 这部内容也不是什么新鲜事,也是比较靠谱一个思路。 老司机添加了高度缓存、优化等优化功能,并且对选择、展示画、数据占位图等常用功能都进行了支持。而且老司机也在不断丰富helper类功能。 只放一个版本更新记录吧,代码放不下=。 类名 version 1.1.0 改变cell划线机制,改为系统割线,添加割线归0方法 添加自行高计算并缓存 cell添加xib支持 修复选择模式选中后关闭再次开启选择同一个法选中

    57833

    iOS开发常用之网络

    它使用基于ViewController容器特性(而不是视图)来管理各个子面,以支持,源码推荐说明。 横向展示文本内容自定义cell - 可以横向展示文本内容自定义cell,根据文本。 仿LOL视图 - 仿LOL视图。 答案选择切换 - 将scrollview和tableview封装在一起,在初始时候简单将数据带上,就可以一左右来回滑。 用于简化实现各种类型旋转木马(视图),轮播,iOS开发之多图片组件封装与使用。 KIPageView - 循环PageView,横向TableView轮播。 简单实用循环轮播图 - 简单实用循环轮播图。 CPInfiniteBanner - 是一个循环播放组件,可以左右缝滑,3个imageview实现。

    66910

    AsyncDisplayKit 2.0 教程:入门「译」

    image.png 真是一个流畅 tableView!一旦你开始做了,那就让我们做更好吧! 在大多数应用中,服务器数据点个数往往会多于当前 tableView 中显示单元格数量。 很多时候,这是通过手观察视图方法中内容偏移来处理 scrollViewDidScroll:, 使用 ASDK, 有一种更具说明性处理方式。相反,你可以预先确定好你需要加载数。 因为你希望,那就返回 YES,以确保总是请求新数据。 Build and Run,并且不停。你将会看到不停看到一只鸟,他们是。 假设你有一个竖直tableView,在其中某些Cell包含了水平 collectionView。

    8020

    效果类似于label从下往上滑(采用uiTableView实现)

    进行描述一下:效果就是类似于是一个竖直方向视图 并且方向是从下往上  并且能够一直这样循环下去。 代码“ // // ViewController.m // demo视图上下 // // Created by TaoLi on 16/2/24. // Copyright © 2016年 scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionBottom animated:YES]; } //设置每行单元格内容 viewWillAppear:(BOOL)animated { // //开启定时器 [self.myTimer setFireDate:[NSDate distantPast]]; } //面消失 ,进入后台不显示该面,关闭定时器 -(void)viewDidDisappear:(BOOL)animated { //关闭定时器 [self.myTimer setFireDate:

    45850

    iOS10-iOS15主要适配回顾

    ios15适配 1、UITabar、NaBar新增scrollEdgeAppearance,来描述视图到bar边缘时外观,即使没有视图也需要去指定scrollEdgeAppearance, 否则可能导致bar背景设置效。 sectionHeader多处一段距离,需要设置 为 3、IDFA 请求权不弹框问题,解决参考iOS15 ATTrackingManager请求权不弹框 4、iOS15终于迎来了UIButton这个改 属性 6、tableView右滑删除新增api 7、导航条层级发生了变化。 3、苹果加强了对隐私数据保护,要对隐私数据权做一个适配,iOS10调用相机,访问通讯录,访问相册等都要在info.plist中加入权访问描述,不然之前你们项目涉及到这些权地方就会直接crash

    26940

    背景

    这是游戏里面很常用一个功能模块,它就像你生活,有着走不完路程。它实现也很简单,要么做一个很长背景图,然后移相机;要么就是实现一个跑马灯,像那些轮播图什么,大家应该都有写过。 ? Infinite_bg_scroll 实现思路 背景缝切换实现 这个demo实现思路是跑马灯。 背景是两张一样背景图,第一张图在前,第二张图在后,两张图同时移,当第一张图正好移到出屏幕时候,第二张图正好移进屏幕,这个时候复原两张图初始位置。这个过程不停循环就有走不完路程了。 ? 但是这样是不够,因为不是所有用户屏幕都是按我们设计辨率来,所以跑着跑着可能你背景就露馅了 ? overflow 所以我们在onload时候还是得手去对齐一下bg2位置,因为它在布局编辑器里面只是往右移了我们设计辨率一样宽距离。

    42230

    摸鱼新发现,

    ElementClass extends Vue {} interface IntrinsicElements { [elem: string]: any } } } Element-ui 自己实现 首先看一下效果 ? 首先需要获取位置,即可视区高度和内容区域底部距离可视区面顶部距离,如果他们相等此时浏览器条当好面底部,如果相差是负数说明浏览器条还没有到达面底部。 ? ,我们就可以触发我们自己需求去调用接口等 优化面 这里想法是当我们浏览器之后,上去内容不显示在面上,只显示可视区域,减少负载,先看一下效果 ? ,其实也简单,就是能不能想到这个点子上,如果想不到那肯定就是天方夜谭了,这里面也有很多不足地方需要改进,欢迎留言探讨和指点,毕竟这里水很深,不小心鞋就湿了。

    48640

    iOS - Swift UITableViewscrollToRow

    简介 在tableView中,我们一般会用到scrollToRow这个来控制tableView到指定某一行。 我设置了在键盘弹出后聊天消息列表会自到底部。 1.随便输入一条消息,点发送后,在聊天消息列表中并没有到最新消息那一行。 析 在奈之下,经过了一步步探索,终于发现了问题所在 首先我们要了解一下scrollToRow执行后会调用哪些函数及顺序 会调用这两个方法 func tableView(_ tableView 所以在上面情况中,发送完消息后,最新消息cell确是插入到了tableView,也有显示出来(后面我自己测),但就是到最新消息那一行,就是因为 heightForRow 返回高度为0 第二种 我使用SnapKit来自布局cell�位置然后再来获取高度,这做法主要就是为了避免运算。

    67050

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

    AutoLayout和手计算高度 毫疑问,使用AutoLayout会明显比手计算高度慢,那么我为什么要用AutoLayout呢,因为实在太方便了,而且视图太复杂,产品改太频繁,手计算实在工作量太大 ,一种是图片预加载,另一种是内容预加载,先说内容预加载,其实就是在指定到第几个cell时候开始请求,这样用户就会感知开开心心刷刷刷了。 于是尝试手解GIF数据,使用第三方库FLAnimatedImage手解GIF,在渲染时候从内存读入缓存完NSData,庆幸是最新SDWebImage已经支持了FLAnimatedImage, 最后要做就是把滑和GIF开,想到是NSRunLoop,因为滑事件是在NSEventTrackingRunLoopMode下,使用NSDefaultRunLoopMode就可以保证不在UI 时候取帧和渲染GIF。

    55410

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券