这几天做了一个查看股票行情的app. 完成之后,当k线比较多的时候,app 对于捏合.拖动手势的反应不太流畅, 主要原因是drawRect: 干的活太多, 竟然需要40ms+, fps 自然不高 最后按照下面这些原则,进行调整修改,流畅度提高不少,大多数的绘制时间控制在了10ms左右 总结如下: 1. 尽量不要实现drawRect(每次调用该方法时,都要为backing store分配内存,非常消耗CPU) 2. 避免在drawRect:中进行耗费大量CPU资源的工作 2. 尽量少调用setNe…
iOS开发UI篇—Quartz2D使用(绘制基本图形) 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 决定绘制的输出目标(绘制到什么地方去?)(输出目标可以是PDF文件.Bitmap或者显示器的窗口上) 相同的一套绘图序列,指定不同的Graphics Context,就可将相同的图像绘制到不同的目标上. Quartz2D提供了以下几种类型的Graphics Context: Bitmap Grap…
前不久有朋友需要一个启动广告的功能,我说网上有挺多的,他说,看的不是很理想.想让我写一个,于是乎,抽空写了一个,代码通俗易懂,简单的封装了一下,各种事件用block回调的,有俩种样式的广告,一种是全屏广告,另一种是下面露logo的,类似网页新闻的启动广告.依赖SDWebImage主要用来下载网络的广告图片,一般项目里面网络图片都用的这个框架,所以在此不做过多的阐述.下面让我们来看看我封装的过程,对于新手来说,可以学习一下这种封装的思想. 1.首先建一个继承View的LBLaunchImageAd…
iOS开发UI篇—Quartz2D使用(绘制基本图形) 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 决定绘制的输出目标(绘制到什么地方去?)(输出目标可以是PDF文件.Bitmap或者显示器的窗口上) 相同的一套绘图序列,指定不同的Graphics Context,就可将相同的图像绘制到不同的目标上. Quartz2D提供了以下几种类型的Graphics Context: Bitmap Grap…
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更新也都是围绕扩展这一主题来进行了的,例如开发的Siri.iMessage Apps其实都是依靠扩展来工作的.在最新的Xcode 8 beta中也增加了众多的Extension 模板帮助开发者更快的实现不同类型的扩展.因此今天有必要介绍一下扩展相关的开发内容. 扩展的生命周期 iOS对于扩展的支持已经…
本文主要介绍了App上架流程,以及上架过程中会遇到的一些问题. 一.App上架前的准备. 上架前,需要开发人员有苹果开发者账号,具体请阅读苹果开发者账号注册申请流程.本文是在已经拥有开发者账号的前提下而开展的. 二.登陆苹果开发者官网. 1.进入苹果开发者官网.   苹果开发者官网 2.点击Acount.   登陆界面 3.输入开发者账号,点击Sign in(登陆)   输入账号密码 三.生成发布证书 1.点击Certifcates,Identifiers & Profiles(证书,id,配置…
前言 这篇文章介绍了作者开发工作中总结的25个iOS开发tips, 多年之前读过这篇文章.收益良多,基本每一个tips在我的应用开发过程中都使用过.今天把这篇文章又一次整理转发下,与大家一起学习,不论你处于什么开发阶段,这些tips都值得你重复熟悉. 过一段时间.自己以也计划翻译些国外的技术文章,把国外开发人员的知识与国内开发人员分享,同一时候欢迎很多其它的开发人员加入我们: https://github.com/bboyfeiyu/iOS-tech-frontier 介绍 本文来自iOS Tu…
在开发的APP中我们通常通过手动底部上滑来调出WiFi.蓝牙.飞行模式等的设置页面.有时我们开发的APP无法调出. 解决的方法: 进入iPhone "设置" --> "控制中心"--> "程序内訪问"开关打开就可以! "再锁定屏幕上訪问"  是在锁屏情况下,同意调用设置…
Dart初衷 作为当前市占率最高的智能手机操作系统,Android平台正在吸引着越来越多的开发者. 不过,对用户而言,Android的体验还不够完善,卡顿的情况时有发生.再深入点理解,许多应用的帧率达不到普遍意义上流畅的标准60fps.好消息是,谷歌正在考虑使用新的编程方案着力改善这一情况.据悉,来自Chrome V8引擎设计团队的工程师近日演示了利用自主网页语言Dart来开发Android应用,并将其命名为“Sky”.Sky保持开源特性,包括在iOS内都可运行.更重要的是,它将带来120fps…
冷启动 冷启动就是App被kill掉以后一切从头开始启动的过程. 热启动 当用户按下home键的时候,iOS的App并不会马上被kill掉,还会继续存活若干时间.理想情况下,用户点击App的图标再次回来的时候,App几乎不需要做什么,就可以还原到退出前的状态,继续为用户服务.这种持续存活的情况下启动App,称为热启动. 冷启动比热启动重要 苹果提供的测量启动耗时方法 在Xcode的菜单中选择Project→Scheme→Edit Scheme,然后找到 Run → Environment Var…