运用UIKit Dynamics实现小球碰撞效果

先来看一下效果

  • 我们先来分析一下需要哪些行为。

  • 首先要创建五个小球,为各个小球添加手势。

  • 然后初始化UIDynamicBehavior,设置锚点(蓝色小方块即为锚点)、重力、碰撞行为、碰撞参数等。

  • 为小球添加UIDynamicBehavior。

OS X Automator与快捷键配合实现高效工作流

接上文:『基于Node-js的Github-Pages博客系统』

上文介绍了个人博客的搭建,这篇文章我们来谈一谈关于 OS X 下自带应用程序「Automator」配合「终端」及剪切板工具「CopyLess」的使用来实现高效工作流。

同步到个人博客的步骤较为繁琐,我们先来看一下:

  • 开启终端

  • 输入 cd /Users/ YourName /Documents/hexo

  • 输入 hexo g

  • 输入 hexo d

每次都输入这么多十分让人头疼,接下来我们进行简化。

基于Node.js的Github Pages博客系统

摘要:

根据个人所需搭建出独立博客,我将会通过 安装流程主线+优质文章 作为参考。当然我的独立博客还不够完美,但若只是可以记录我的时光也足够了。我会将这篇教程写仔细,也将我出现过的问题给予大家一个解决方法。

前言

最近思考了一下,根据时间还有金钱计算,感觉还是不要搞得那么专业了。买阿里云虚拟机,搭 PHP 环境,配置 Wordpress,想想就懒得动手。觉得我的博客也就是分享些经验技巧相关的感悟比较多,配图什么的也可以都走免费的图床服务(七牛等)。静态页面的博客完全就可以满足吧。Github Pages 是一个比较酷的选择。

Objective-C _cmd用法

_cmd 是隐藏的参数,代表当前方法的 selector,它和 self 一样都是每个方法调用时都会传入的参数,动态运行时会提及如何传的这两个参数。

比如这样一个语句:

1
2
3
4
5
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"Current method: %@ %@", [self class],NSStringFromSelector(_cmd));
}

控制台输出:

1
Current method: FirstViewController viewDidLoad

其实我更加喜欢这样:

1
2
3
4
5
- (void)viewDidLoad
{
NSLog(@"%s", __PRETTY_FUNCTION__);
// ...

}

控制台输出:

1
-[MyViewController viewDidLoad]

Surge 技巧(一):bypass-tun调试

Surge 是基于 iOS 9 的新特性 Network Extension 开发的一款网络调试工具,工作原理是使用 Packet Tunnel Provider 给系统套上一个代理,Surge 有两个主要组件:Surge 代理服务器和 Surge TUN 接口。程序运行之后,Surge 会将自身设置为默认的 HTTP/HTTPS 代理服务器来处理所有的 HTTP/HTTPS 流量。针对一些不服从系统代理设置(如 Mail.app )的应用程序 ,将由 Surge 的 TUN 接口来进行处理。

Surge 会接管全局的(几乎)所有通信,所以所有网络方面的电量消耗都会被算在 Surge 头上,实际上 Surge 的运行功耗很少,使用中也不会感到 Surge 对电量有明显影响。

详细介绍可参见 Surge 新手使用指南

本文主要测试爱奇艺客户端在 Surge 作用下的广告屏蔽作用。

橘色

在今年圣丹斯电影节上大放异彩的电影《橘色》(Tangerine)于7月10日登陆美国院线。《橘色》在圣丹斯电影节的一众劲敌中强力突围,堪称黑马。影片讲述了在好莱坞不那么光鲜的角落里工作的变性工作者的生活,人物性格冷酷、有趣、不愿受制于人。

关注这部电影主要是因为它全程用 iPhone5s 拍摄而成,因为我本身也很喜欢摄影,而且并没有什么闲钱去买高端的摄影器械,而且以往也都是用 iPhone 或是单反相机来拍摄(废机器请不要学我),所以想来学习一下导演的低成本拍摄方法,运用软件来优化,后期制作等。

获取iOS设备信息

今天在做客户端的时候,里面有个意见反馈功能。

调用系统带的邮件功能,发送邮件到指定邮箱。

在邮件正文部分添加手机相关内容,比如型号,版本,应用程序的版本等等,这样不仅使用者方便,开发者也能更好的分析。

iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用户设备、系统信息、应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息,是通过开发api可以获取到的。iOS的SDK中提供了UIDevice,NSBundle,NSLocale。

iBeacons技术

iBeacon:是苹果公司2013年9月发布的移动设备用OS(iOS7)上配备的新功能。

其工作方式是,配备有 低功耗蓝牙(BLE)通信功能的设备使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软件会根据该ID采取一些行动。比如,在店铺里设置iBeacon通信模块的话,便可让iPhone和iPad上运行一资讯告知服务器,或者由服务器向顾客发送折扣券及进店积分。此外,还可以在家电发生故障或停止工作时使用iBeacon向应用软件发送资讯。

苹果 WWDC 14 之后,对 iBeacon 加大了技术支持和对其用于室内地图的应用有个更明确的规划。苹果公司公布了 iBeacon for Developers 和 Maps for Developers 等专题页面。

These are a new feature of Bluetooth LE which allows proximity-based notifications and ranging.(蓝牙的新特性,允许附近通知和测距。)

The seeker device displays updates of estimated range to it.(iBeacon可显示装置更新的估计范围。)

WKWebView的使用

在WWDC 2014中,苹果推出了最新的 iOS8 系统,其中也伴随着很多控件的更新与升级。其中全新的WebKit库让人很是兴奋。本文也将讲解到WebKit中更新的WKWebView控件的新特性与使用方法,它很好的解决了UIWebView存在的内存、加载速度等诸多问题。

WKWebView新特性

在性能、稳定性、功能方面有很大提升(最直观的体现就是加载网页是占用的内存,模拟器加载百度与开源中国网站时,WKWebView占用23M,而UIWebView占用85M)。

允许JavaScript的Nitro库加载并使用(UIWebView中限制)。

支持了更多的HTML5特性。

高达60fps的滚动刷新率以及内置手势。

将UIWebViewDelegate与UIWebView重构成了14类与3个协议。