IOS之UI  绘图(笔记)

本文介绍iOS中如何实现绘图功能,包括利用UITouch处理触摸事件来绘制图形,并探讨了视图间的层次关系及如何响应事件。此外,还讨论了frame与bounds的区别以及UIViewController的常用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

绘图
绘图是是绘在view上,触摸的过程就是绘制的过程。
数据结构:
需要一个点数组,pointArray;  点数组代表一条线;
需要一个线数组,lineArray;里面存的是点数组;
涂鸦里面包含两方面:
触摸:
UITouch:
touchesBegan:withEvent: 开始触摸
touchesMoved:withEvent: 手指移动
touchesEnded:withEvent: 结束触摸
touchesCancelled:withEvent: 触摸中断
locationInView: 当前手指的位置
previousLocationInView: 上一次手指位置
绘图:需要重写drawRect方法
绘图常用方法
UIGraphicsGetCurrentContext()  获取上下文;
CGContextSetStrokeColorWithColor() 设置画笔颜色
CGContextSetLineWidth() 设置画笔粗细
CGContextMoveToPoint() 移动画笔到指定位置
CGContextAddLineToPoint() 画直线

setNeedsDisplay      重写drawRect的方法

1、描述子视图和父视图之间层次关系
包含的关系,视觉上子视图隐藏了父视图的内容。如果子视图不透明,则所占区域完全隐藏了父视图的相应区域。
父子视图影响视图行为,改变父视图的尺寸子视图也跟着改变,其他会影响到子视图的改变包括隐藏父视图,改变父视图的alpha值,或者转换父视图。
视图层次的安排会决定着应用如何去响应事件。在一个具体的视图内部发生的触摸事件通常会被直接发送到该视图去处理。然而,如果该视图没有处理,它会将该事件传递给它的父视图,在响应者链中以此类推。具体视图可能也会传递事件给一个干预响应者对象,像视图控制器。如果没有对象处理这个事件,它最终会到达应用对象,此时通常就被丢弃了
2、frame和bounds区别是什么?
frame指定视图的坐标和大小,bounds是边界属性,用于定义视图相对于本地坐标系的位置和大小
3、UIApplication的代理方法有哪些?
程序正确启动;程序将要变成非活跃状态;程序进入后台;程序进入前台;程序变成活跃状态;程序将要终止。
4、UIViewController都有哪些常用方法,什么时候调用?
didReceiveMemoryWarning 接收到内存警告的时候调用
viewDidLoad 视图加载之后被调用,只调用一次
loadView 只调用一次                       
- (void)viewWillAppear:(BOOL)animated;    视图将要消失的时候调用

- (void)viewDidAppear:(BOOL)animated;   视图消失的时候调用


-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

//设备旋转方法,改为YES,自动改变设备方向,进行设备方向检查。IOS6.1后不建议使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值