Data+AI时代,如何打造下一代数智平台? 了解详情
写点什么

MKMapView 的性能优化 - iOS 移动开发周报

  • 2015-07-21
  • 本文字数:1680 字

    阅读完需:约 6 分钟

新闻

  1. Apple Watch 新广告中的中国元素:中国业已成为 Apple 的最重要的市场之一,最近 Apple 发布了一系列关于 Apple Watch 的电视广告,其中有一个主题就是北京。虽然除了舞台背景是在北京以外,并看不出 Apple Watch 在使用上和北京有什么太大关系,但是这则广告确确实实是为了迎合中国市场的行动。
  2. 网络音乐版权新政策:国家版权局最近发布了一则通知,要求网络音乐服务商停止未经授权传播音乐作品,并责令各大网络音乐平台在 7 月 31 日前将未经授权的音乐作品全部下线。QQ 音乐、酷狗音乐、网易云音乐等 25 家网络音乐服务商签署《网络音乐版权保护自律宣言》,承诺抵制各类侵犯网络音乐著作权行为。此举是对国内网络音乐版权的规范,而版权付费和正版化,也是必然趋势。也许这一变化会给 Apple Music 在国内的推广带来一些机会。

教程

  1. 《UICollectionViews Now Have Easy Reordering》:作为和 TableView 一样的最常用的控件之一,CollectionView 自从在 iOS 5 上出现以来就一直在不断改进。在 iOS 9 SDK 中 UICollectionView 已经加入了原生的拖拽重新排列的相关 API,本文通过例子讲解了这个功能的实现方式。如果你还没有使用过 UICollectionView 来制作界面的话,不妨在下一个项目中用它来全面代替 UITableView - 因为从功能上来说后者其实只是前者的一个子集,Collection 相比起来要灵活得多。
  2. 《一次对 MKMapView 的性能优化》:作者通过使用 Instruments 检测并解决了一个遮罩渲染导致的性能恶化的问题,如果你没有 Instruments 的使用经验的话可以阅读本文。对于像文中的圆角或是阴影的处理,有经验的开发者往往能进行一定预判并提前采取手段优化。但是对于更复杂的 view 结构的优化,使用 Instruments 来检测问题源头是必备的技能,也更为可靠。
  3. 《iOS9 Day-by-Day》:iOS Day by Day 系列教程的最新版本。从 iOS 7 起,这位博主就会在 WWDC 之后每天更新一篇新 SDK 中的亮点功能的教程,这次也不例外。想要在短时间内了解新内容的开发者可以考虑订阅这些内容。相应的代码作者也公开在 GitHub 上了,另外如果您对前几年的内容感兴趣的话,还可以继续看看 iOS7 Day by Day iOS8 Day bt Day

开源项目

  1. SCSafariPageController :一个类似于 iOS Safari 中切换标签页时的特效。这个框架接口类似于 UIPageViewController,用户可以提供页面信息,框架将使用 3D 动画帮助你实现切换。如果在应用中有需要模仿系统浏览器标签切换效果的需求的话,这个框架应该可以帮助你节省不少时间。
  2. BTNavigationDropdownMenu :为 Navigation Bar 添加一个菜单,可以用来作为 View Controller 导航。iOS 开发中标准的导航模式其实只有 navigation 和 tab 两种,而众多开发者们也自己发明了像是 drawer 这样的新的导航方式。使用这个框架为我们提供了另一种新的导航模式思路。
  3. LxThroughPointsBezier :计算贝塞尔曲线一直是一件挺烦人的事情,往往需要对控制点进行大量的调整,才能获得理想的曲线。这个框架为我们简化了这一过程,只需要给定想要一条贝塞尔曲线通过的点,以及像是曲率这样的参数,就能帮我们绘制出通过这些点的曲线,这可以大大节省调整曲线的时间。
  4. MPCoachMarks :在 app 制作时一个很通用的需求就是引导教程,一个好的引导教程不仅是展示你的 app 的绝好机会,也能让用户快速明白 app 的基本操作和功能,拉近 app 与用户的距离。这个框架可以为现有的 UI 添加一个变暗的 mask 层,只露出部分 UI。另外,我们还可以简单地在这个 mask 上添加图片或者文本,在创建一个简单的指引式教程时这些特性都是非常方便的。
  5. ParkedTextField :一个可以固定后缀的文本框控件,可以用来引导用户输入一些类似邮箱,域名或者文件名之类的信息。这个项目本身内容并不复杂,源码也很少,但是因为使用了 IBInspectable,这让我们可以在 Interface Builder 中直观地使用这个控件。

感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注 我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-07-21 07:463152
用户头像

发布了 59 篇内容, 共 23.3 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

无需修改代码,用 fcapp.run 运行你的 REST 应用

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

不仅仅是自动化,DevOps 测试工具推荐

飞算JavaAI开发助手

浅谈TCP和UDP协议

工程师日月

5月月更

闲置计费 | Serverless 冷启动与成本间的最优解

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

每日一题——PAT乙级1004 成绩排名 python

武师叔

MySQL存储过程批量生成假用户电话号码

芝士味的椒盐

MySQL MySQL 数据库 5月月更

【Go实现】实践GoF的23种设计模式:建造者模式

元闰子

Go 设计模式 建造者模式

攻克编译器技术(2)

刘旭东

源代码 编译器原理 5月月更

【愚公系列】2022 年 05 月 二十三种设计模式(五)-单例模式(Singleton Pattern)

愚公搬代码

5月月更

硬仗白酒,解锁当下“社交密码”

联营汇聚

一文搞定 Flutter 文件下载和管理

岛上码农

flutter 跨平台 安卓开发 ios 开发 5月月更

一“碳”究竟:碳交易的生意经与飞轮“燃料”

脑极体

低代码实现探索(四十一)未实现小目标

零道云-混合式低代码平台

Nacos源码系列—关于服务注册的那些事

牧小农

源码 nacos

Jackson 解决没有无参构造函数的反序列化问题

TRAMP

Jackson java 序列化与反序列化

五、高可用之全链路压测

穿过生命散发芬芳

5月月更

CleanMyMac2022免费版Mac电脑清理软件功能

茶色酒

CleanMyMac2022 CleanMyMac

ssh常用命令总结

入门小站

SSH

Global Tensor和实习总结|OneFlow学习笔记

OneFlow

深度学习 学习笔记 分布式训练 Global Tensor

Flutter/Dart:生成最小值和最大值之间的随机数

坚果

5月月更

虎符交易所上线量化网格交易 同步开启活动三重奏

区块链前沿News

活动 虎符交易所

IntelliJ IDEA 如何增加运行时候的内存

HoneyMoose

Nginx 如何将所有 HTTP 的流量转移到 HTTPS

HoneyMoose

Linux多线程-概念及控制

可口也可樂

c++ Linux 后端

时序数据库在水电站领域的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

聊聊 Kafka:Kafka 消息丢失的场景以及最佳实践

老周聊架构

kafka 4月月更 5月月更

Django Model 如何返回空的 QuerySet

AlwaysBeta

django

Docker下的Spring Cloud三部曲之一:极速体验

程序员欣宸

Java Spring Cloud 5月月更

在线时间戳格式化转换工具

入门小站

工具

喜报!阿里云首个通过应用多活“先进级”能力评估

阿里巴巴云原生

阿里云 云原生 应用多活

python进阶-迭代器和生成器

AIWeker

Python 人工智能 5月月更

MKMapView的性能优化 - iOS移动开发周报_移动_王巍_InfoQ精选文章