UIView之drawRect:和Quartz 2D的坐标系问题

最近在研究股票K线图的实现,发现了很多以前没有注意的细节,其中坐标系就是一个通常不被注意的坑。

UIWindow和UIView类基于UIKit框架,UIkit中的坐标是基于这样的坐标系统:以左上角为坐标的原点,原点向下和向右为坐标轴正向。下面附上官方文档截图:


所以当我们调用视图的drawRect方法工作的时候拿到的context的坐标系统是以左上角为原点,这时候绘制传统直接坐标系的内容,就会因为坐标不一致问题出现图形错乱或倒立。而在Quartz 2D绘图中的坐标系统就是直角坐标系,即原点在左下方,右上为正轴。下面附上官方文件截图:


当然坐标系统的界限并不是绝对的,单纯使用Quartz 2D绘制context的坐标系统以左下角为原点,如果在drawRect:调用的准备期间,获取的是以UIKit框架为基准左上角为原点的context,在这个context上调用部分Quartz 2D方法是可以进行正确绘制的,这其中的关键取决用你所获取的context的坐标系。

坐标系问题主要是在绘制图表计算点坐标的过程中容易出现误差,希望对大家有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值