-
创建主框架
- 创建一个iews-based Application模板项目
- 创建一个UIView试图子类。
-
双击MainWindow.xib打开IB
- 在IB中添加一个View对象
- 将该View对象所属类设置为之前创建的UIView子类
- 双击Asteroids View Controller项
- 将来Asteroids View Controller 与 刚创建者的View对象相关联
-
隐藏最上面的状态栏
- 打开“xx-Info.plist”文件
- 在属性列表编辑器中,单击最后一项,在行尾添加一个新行。
- 从给定的列表中选择“Status bar is initially hidden”项
- 选择“YES(隐藏)/NO(不隐藏)”
-
创建 一个图形
- 打开UIView试图子类
-
Quartz 2D 绘图简单算法
- 保存上下文状态
- 执行单个或组合的矩阵变换
- 绘制需要这个变换的图形
- 还原上下文状态
-
编辑-(void)drawRect:(CGRect) rect;方法
- CGContextRef context = UIGraphicsGetCurrentContext();
获取图形上下文,
- CGContextSaveGState(context);
保存其状态
-
重置变换
- CGAffineTransform to = CGContextGetCTM(context);
返回图形上下文的变换矩阵
- to = CGAffineTransformInvert(to);
创建一个 逆矩阵
- CGContextConcatCTM(context,t0);
将现有矩阵和新矩阵的to拼接起来
-
绘制一个矩形
- CGContextBeginPath(context);
通过上下文创建一个绘制路径,一次只能创建一条路径
- CGContextSetRGBFillColor(context,0,1,0,1);
设置路径中使用的颜色。后四位分别是RGBA的值(范围在 1~0之间)
- CGContextAddRect(context,CGRectMake(0,0,100,200);
在当前路径中添加一个矩形。
- CGCcontextClosePath(context);
结束当前路径。
- CGContextDrawPath(context,kCGPathFill);
将路径添加画布中,参数二为绘画模式。
- CGContextRestoreGState(context);
还原状态
-
矩形变换的一些操作
- CGAffineTransform t = CGAffineTransformIdentity;
保存一个单位矩阵的一个副本。
- t = CGAffineTransformTranslate(t,x,y);
创建一个新的矩阵,并将画布平移x、y个单位。
- t = CGAffineTransformRotate(t,rotation);
将画布旋转rotation个角度。
- t = CGAffineTransformScale(t,scale,scale);
将画布缩放scale个单位
-
那一面朝上
-
切换到水平方向
- 在主应用程序XXXAppsDelegate类applicationDidFinishLaunching方法中(3.2.2——4.0见备注)
- [application setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
通过调用此方法将显示模式设置为横屏模式。
- [application setStatusBarHidden:YES animated:NO];
记得依然将状态栏设置为隐藏,避免状态栏出现
-
将画面保持相对位置不变
- 只需要将旋转角度减少90°,以抵消横屏模式旋转的90°
- 交换了y值和 x值,x方向的位置变为480减去x,这样所有的对象都可以朝上了。
-
将原点居中
- 只需要将移动x点到中心点个距离,y点到中心点个距离就足够了。
- 感应设备的方向可以使用以下方法:
UIDeviceOrientation orient = [[UIDevice currentDevice] orientation];
orient可以取如下值中的一个:
UIDeviceOrientationUnknown:未知,假设没有旋转
UIDeviceOrientationPortrait:没有旋转
UIDeviceOrientationPortraitUpsideDown:180°旋转
UIDeviceOrientationLandscapeLeft:90°旋转
UIDeviceOrientationLandscapeRight:-90 °旋转
UIDeviceOrientationFaceUp:未知旋转
UIDeviceOrientationFaceDown:未知旋转
-
矢量图
- [self outlinePath:context];
创建轮廓路径的另一份副本。
- CGContextClip(context);
将当前的路径转化为一个剪切区域。
- [self gradientFill:context];
绘制一大片点缀的渐变色,
-
翻页动画
- 包含一幅动画的多帧画面的单幅图像称为sprite画册(atalas)。
- CGImageRef是一个指向Quartz 2D中的一个内部结构的指针,这个结构包含了这幅图像所有和显示相关的信息。
- 自由主题