《iOS 三问》 -- 解决 web 页面在 WebView 中不能捏合缩放的问题
今天突然发现我的博客在手机浏览器里居然不能缩放,导致一些图片在手机上显示得较小根本看不清,经过一翻搜索,原来是页面 html 中的 meta 没有写相应的 scale 参数导致。
今天突然发现我的博客在手机浏览器里居然不能缩放,导致一些图片在手机上显示得较小根本看不清,经过一翻搜索,原来是页面 html 中的 meta 没有写相应的 scale 参数导致。
iOS 的动画实质上是在 CALayer 上实现的,但是在 UIView 上也提供了对底层动画的封装,使得我们可以很方便地直接对 UIView 进行一些简单的动画。使用 UIView 提供的动画机制,可以作用于这些属性上:alpha,backgroundColor,bounds,center,frame,transform。
本章将介绍 iOS UI 编程的一个重要角色 CALayer,它是 UIView 即 iOS 各种控件之所以能显示在界面上的基础,负责把 View 绘制出来。
CALayer 的前缀 CA,就是 Core Animation,会让人感觉 CALayer 这个类主要是用来做动画的。但是实质上就 CALayer 这个类来说,其主要职责还是绘制界面(当然通过我们后面的介绍大家对整个 Core Animation 包掌握之后,就会了解到 UI 绘制其实是动画实现的基础)。所以,当我们学习 CALayer 时,主要精力还是先放在其绘制界面上来。
我为什么这么说呢,其实还是可以解释一下的。因为它是从一个叫做 Layer Kit 这么一个不怎么和动画有关的名字演变而来,可见其之前是专注于图层绘制的。
我们之前说过,对于 UI 系统的视觉方面,我们可以从 “绘图、布局、动画” 几个维度进行学习。而 CALayer,就是一个涵盖了这几个维度的在 iOSUI 编程方面有重要地位的工具。
本教程主要是记录怎样在 iPhone 越狱手机上,由 c 源码或 oc 源码编译出来命令行程序并运行之。
为什么我们要自己手动编译源码并在越狱 iPhone 手机上执行?
@_@
)PS: 后面有空的话我可以会补充下怎样直接在 iPhone 上安装 Vi+Clang 自己实现代码的编辑加编译~这样就可以直接在手机端操作了,敬请期待。
OC 的 #define
命令与在 C 语言中的非常相似,是一个预处理命令,其作用是在编译之前对你的代码进行预处理,使用在 define
中定义的字符串 value 来替换你要替换的字符串 key, 其形式如:
1 | #define KEY value |
这里要注意几点:
#define 预处理命令
顾名思义,是在编译前工作的,所以其优先高于各种编译期间指令,而且享受不到编译器强大的错误提示(所以使用它要格外小心);