-
iOS性能优化(一)
前言之前有写过一篇关于UITableView优化问题的文章,现在回头再去看,其实只是蜻蜓点水,写了一点皮毛而已,这次再次看Y神的iOS 保持界面流畅的技巧以及其他人的博客,又有不少收获,来给大家分享一下我现在对iOS界面优化的一些拙见.后面应该还会继续分享一些其他方面的优化,比如说内存,电量等.界面卡顿分析首先看一张图,屏幕成像的过程.从深层次来看,界面之所以卡顿,是因为CPU和GPU在一个垂直同步信号(VSync)的时间区间内没有完成他们各自的任务,可能是CPU创建对象和计算显示内容耗时...…
-
UITableView优化问题
关于UITableView的优化问题网上可以查到很多文章,也不知道看哪一篇.这篇文章我会简单扼要的讲下UITableView引起卡顿的原因,解决方案以及怎样预防. 认知 首先你要先知道自己的UITableView是否需要优化,比如滑动的时候有明显的停滞感或者卡顿,那肯定是要优化的.如果肉眼无法明显的看出来,那么就需要借助工具: 可以从Instruments里的Core Animation看Frames Per Second,也就是我们说的F...…
-
通过视频地址获取视频缩略图和标题
类似需求:在微博发布一条视频链接,查看的时候并不是一条视频链接的微博,而是一条有视频标题和视频封面图的微博.目前可获取的网站有腾讯,优酷,土豆,爱奇艺,哔哩哔哩.腾讯视频缩略图https://v.qq.com/x/cover/8jnnyshzame1k0h/r0513rpuuq0.html 视频链接是有两个变量和其他字符拼接而成.我们称那两个变量为cid和vids https://v.qq.com/x/cover/cid/vids.html cid:8jnnyshzame1k0hvi...…
-
[译]深入研究GCD在Swift中的用法
原作者: John Sundell原文地址: https://www.swiftbysundell.com/posts/a-deep-dive-into-grand-central-dispatch-in-swift 翻译: 何东彬校对: 韩晔Grand Central Dispatch(或者简称GCD)是Swift开发者经常使用的基本技术之一.其最为人知的亮点是能够在不同的并发队列上分发任务,相信你很有可能已经用它来编写过如下代码:DispatchQueue.main.async { ...…
-
PlayStation中国两周年庆祝活动小记
前言一直喜欢单机游戏,高中大学的时候玩了很多,比如大名鼎鼎的系列,系列,系列等等,甚至还有一些不为人知的冷门游戏. 那个时候没钱买主机,只能从三大妈下盗版的玩,真是罪过.后来毕业工作了就开始在Steam上买一些游戏来玩,但是主机独占的游戏只能看视频通关,于是为了弥补这一点遗憾,去年让朋友在美亚帮我买了一个PS4 Slim版的,捆绑的.PlayStation 4 Slim 500GB Console - Uncharted 4 Bundle顺便也随手买了一台显示器,2K的.玩了后,我只能说...…
-
在Storyboard中使用Autolayout
前言:Autolayout出了这么多年,普及率已经很高了,但是Autolayout大概也会分两种.就是通过代码来布局还是Storyboard来布局?Autolayout刚出那会我是前者,而且使用UIView-Autolayout这个库来布局.但是后来我发现这样布局,并不能直观的看到自己写的约束是什么样子,只能运行一下来看,代码量也比较多.后来通过研究学习了在Storyboard中使用AutoLayout,再配合User Defined Runtime Attributes真的是太爽了.个人...…
-
iOS中的定时器
认知讲到定时器,需要了解一个概念,叫做RunLoop,从字面意义上理解为运行循环.iOS里有两套API可以访问到RunLoop,NSRunLoop和CFRunLoopRef,一个来自Foundation框架,另一个来自Core Foundation.每一个线程都会对应一个RunLoop,但是RunLoop并不是随着线程的创建而生成的,实际上RunLoop也不允许被开发者创建,可以通过调用[NSRunLoop currentRunLoop];或者CFRunLoopGetCurrent();来...…
-
瓦片地图在iOS项目中的应用(一)
这次来跟大家分享一下如何使用开源地图来做地图模块放入自己的App中.这里需要普及一些知识.瓦片地图简单点来讲,我们可以把一张地图看成有很多张正方形图片组成的,就像瓦片一样排放,但是这个排放是有一定的规律的.当然地图的缩放等级决定了图片的数量.举个🌰以世界地图为例,那么在缩放等级为0的情况下,就需要一个地图就能显示完.如果放大一个等级,在缩放等级为1的情况下,那么就需要4张图片.那么我们假设地图缩放等级为n,那么一幅地图就需要(4^n)张图片.下图就是当缩放等级为1时候的世界地图.解释下上图...…
-
UIView-Autolayout的简单使用
iPhone6和iPhone6 plus问世之后,iOS开发的屏幕适配就又稍微麻烦了一些,但是如果能熟练使用Autolayout的话,屏幕适配也不是什么难事.众所周知的Autolayout可以在storyboard里通过添加约束来实现,这样是比较简单的.如果用代码的话,是比较麻烦的,包括用VLF语言开发效率也不是很高.那么这里给大家推荐一个非常轻量级的三方框架,准确来说也不算是一个框架,它是给UIView添加一个分类,使用起来非常简单.这里先贴出github地址:https://githu...…
-
Mac下利用goagent代理教程
FQ=fanqiang由于度娘吞了我之前上传的工具,所以我把这个教程中用到的插件和文件都整合到一起了.请戳,密码:jyc1作为程序猿,翻墙上谷歌和其他一些网站是家常便饭,但是有一些刚入门的猿不会翻墙,这里我就教大家在Mac下如何使用goagent跨越GFW.首先感谢goagent的两位作者Phus Lu和hewigovens为广大网友带来了这么好的福利,如果对goagent不了解的可以去wiki搜索一下.goagent在github上也有很详细的介绍以及goagent的部署方法,但是在Ma...…