Light's Blog

The best or nothing.

Smooth Gradient Polyline

| Comments

Introduction

近年来,人们越来越注重运动锻炼,运动相关App层出不穷。其中运动路径追踪是一个重要的功能点。可以很容易的使用MKPolyline实现单色路径追踪。更进一步,如果想通过路径的不同颜色反映出运动过程中的速度变化,如Nike+类似的效果,需要更多的工作。本文主要讨论如何绘制平滑渐变的运动路径。

3D Touch

| Comments

3D Touch简介

3D Touch是智能手机领域最先进技术之一,目前只有Apple在iPhone上构建了相对良好的生态,并在最新推出的iOS 10中进一步优化了用户体验,Android系统和手机厂商还未提供较为成熟的支持。 本文主要介绍3D Touch相关技术的基本实现方法,包括:

1、Home Screen Quick Actions,主屏幕快捷访问;

2、Peek and Pop,预览和进入;

3、3D Touch Force,3D touch压力值运用。

Today Extension - Widget

| Comments

Widget简介

从iOS 8开始,引入widget特性。可以在通知中心的Today栏中添加widget。widget可以简单理解为一个小的扩展程序,可以展示相关应用的简略信息,提供快捷访问等功能。

widget的概念在Android中已经十分成熟,iOS widget与自由度相当高的Android widget有显著的区别。iOS widget的刷新时间为展示widget时,而不是像Android widget时刻保持在后台,消耗系统资源。iOS widget只是作为很小的配角存在,Apple的中心思想还是希望开发者关注App本身的设计和性能。

尽管iOS widget是一种约束状态下的自由,但已经逐渐改变用户的交互行为。

iOS判断GPS坐标是否在中国

| Comments

Background

GPS定位已经深入生活的方方面面。现实生活中存在着多种GPS坐标系:

  • WGS-84坐标系(World Geodetic System——1984 Coordinate System),国际通用GPS坐标系。
  • GCJ-02坐标系(Guojia Cehui Ju Coordinate System),中国专用坐标系,加入随机偏差,俗称火星坐标。
  • 百度坐标系,百度自己定义的坐标系。

在iOS应用开发中,CoreLocation返回WGS坐标,当定位在中国时,如果直接用MKMapView显示位置,由于中国地图使用GCJ坐标,会使定位出现偏差,达不到预期效果。为解决这一问题,在显示位置之前,需要判断WGS坐标是否在中国,并作出相应的坐标转换。

该问题抽象为判断点是否在多边形内部

UICollectionView iOS 10 New Features

| Comments

Background

iPhone屏幕的刷新频率固定为60fps,为了达到流畅的滑动效果,iOS应用展示必须满足该条件。当帧率很低时,就会出现明显的卡顿现象。

60fps相当于每帧16.67毫秒,在这么短的时间内collection view可能并不能完成从相对较慢的数据源加载数据。为了提升collection view性能,一个常用的技巧是使cellForItemAtIndexPath尽可能快的返回cell,比如异步加载网络图片等。为了进一步提高collection view性能,并且尽量减少开发者的工作,在iOS 10中引入了新特性。

Github Blog - 自定义

| Comments

Octopress目录结构

Rakefile

rake的配置文件,类似于makefile。

Gemfile

bundle要下载需要的gem依赖关系的指定文件。

Github Blog - 基本操作

| Comments

创建博文

rake new_post["article_name"]

默认会在octopress/source/_post/目录下生成.markdown文件。

删除博文

只需删除对应的markdown文件即可。