将iOS默认上下文坐标系改变为Quartz通常坐标系

由于iOS的UIKit默认的坐标系的原点处于视图的左上角,而Quartz的通常坐标系中的原点位于左下角。
当我们使用UIKit的坐标操作CGContextRef的时候,绘制出来的图片是上下颠倒的。

因此我们在使用Qaurtz处理图形的时候,往往需要将坐标系转为与Quartz相一致的状态:
CGContextTranslateCTM(context, 0.0f, contextRefSize.height);
CGContextScaleCTM(context, 1.0f, -1.0f);
其中contextRefSize标示整个绘图区的尺寸。

这样就可以正常绘制了。
注意:此时坐标原点由视图左上角转换到了左下角,从左下角X轴向右为正,Y轴向上为正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[python]---从java到python(03)---爬虫

1.简单网页 #!/usr/bin/env python # -*- coding:utf-8 -*-import urllib.requestfile urllib.request.urlopen("https://www.jd.com") data file.read() # dataline file.readline() print(data)fhandle open("E:/python/1_1.html", "wb"…

iOS网络请求认证挑战

一、引言 Http请求中认证挑战相关的代理如下: 1.将要发送一个认证挑战的请求 - connection:willSendRequestForAuthenticationChallenge:2.是否能够对一个保护空间进行认证(已废弃)- connection:canAuthenticateAgainstProtectionSpace:3.…

大数据相关整理

1.hdfs 1.1.namenode 所有文件的读写入口,用来保存文件的元信息 元信息包括: fsimage文件:文件权限信息文件在block块的偏移量文件的位置信息 editlogs文件:对文件的写操作日志文件写日志指令,为了安全同步&#xf…

OC编码规范

一、命名规范 1.类: (1)首字母大写,后续单词首字母大写。 (2)类名末尾要包含此类的类型,比如RootView,RootViewController。 2.属性 (1)属性名称首字母小写,后续首字母大写; (2)使用property,要保持必要的空格&#xf…

数据库---mysql的索引和引擎

mysql 的索引和引擎 mysql的数据都是存放在磁盘上的,都说索引会使查询变快,那么肯定是索引用了特殊的数据结构。 常见的数据结构有: hash hash就是咱们在hashMap中的那个hash,用hash确实快,而且时间复杂度是O&#x…

SQLite内置表SQLITE_MASTER

一、概述1.SQLite数据库中有一个内置表,名为SQLITE_MASTER,此表中存储着当前数据库中所有表的相关信息,比如表的名称、用于创建此表的sql语句、索引、索引所属的表、创建索引的sql语句等。2.SQLITE_MASTER表示只读的,只能对他进行…

redis单线程为什么还快的个人解释

面试的时候, 面试官问,redis是单线程还是多线程 答:单线程 面试官再问,单线程,为什么还快呢?不应该是多线程才更快吗?那这是不是有什么矛盾啊? 答:啊?&#x…

CDN的实现原理

一、传统模式 在描述CDN的实现原理前,让我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别: 用户提交域名→浏览器对域名进行解释→得到目的主机的IP地址→根据IP地址访问发出请求→得到请求数据并回复…

数据库---事务的隔离级别

首先,我们下面说的数据库事务,都是使用INNODB引擎的结果。 MYISAM是没有事务的,也就没有下面这些说法。 1.数据库事务的四大特性: 原子性:事务包含的所有数据库操作要么全部成功,要不全部失败回滚一致性&…

iOS崩溃日志收集

一、概述iOS-App崩溃分为两种,一种是异常:NSException,一种是信号:Signal。二、异常崩溃1.NSException对象(1)reason:崩溃原因。(2)callStackSymbols:调用堆栈。(3)name:崩溃名称(4)userInfo&am…

统计iOS项目代码行数

打开终端,输入如下命令:find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" | xargs wc -l 此命令会迭代子目录,会统计每个源代码文件行数及总数,统计的行数包含空…

一个简单的权限系统模型

我们知道,一般说的简单的权限系统,都是使用shiro或者spring-security shiro之前用的比较多,原理也容易理解,算是比较成熟的权限方面的框架spring-security相对源码比较难懂,但由于与spring的完美融合,也有…

获取iOS任意线程调用堆栈(一)获取任意线程的调用栈地址列表

转载自:http://blog.csdn.net/jasonblog/article/details/49909163 如果要获取当前线程的调用栈,可以直接使用现有API:[NSThread callStackSymbols]。 但是并没有相关API支持获取任意线程的调用栈,所以只能自己编码实现。 1. 基础…

linux---基础01

Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机 Linux的目录结构 bin (binaries)存放二进制可执行文件 boot 存放用…

获取iOS任意线程调用堆栈(二)符号化理论:Mach-o文件结构

我们知道Windows下的文件都是PE文件,同样在OS X和iOS中可执行文件是Mach-o格式的。 所以我们如果要进行逆向分析,首先要熟悉Mach-o文件结构。 Mach-o包含三个基本区域: 头部(header structure)。 加载命令(…

linux---基础02

二、用户、组管理命令 Linux采用组来组织和管理用户 在Linux中每个用户有唯一的用户标识符UID,该UID是一个无符号整数。 同时每个用户也必须至少属于一个组,也有组标识符GID。 其中UID与GID独立编号。 1. groupadd命令 (1)grou…

获取iOS任意线程调用堆栈(三)符号化理论:从Mach-o结构分析类名方法名

下面来讲讲如何从Mach-o文件中分析出类名和方法名,也让我们了解下class-dump的原理。 Mach-o结构有两个节:__objc_classname 和 __objc_methname 其中就是类名和方法名。 其中__objc_classname的偏移为:ox7961 __objc_methname的偏移为0x6…

linux---基础03

三、 文件属性操作命令 1. chown命令 (1)chown示例一:改变文件的属主 [rootserver1 ~]# chown user1 hello.txt功能:将指定文件hello.txt的属主(所有者)改为user1。(2)chown示例…

获取iOS任意线程调用堆栈(四)符号化实战

转载自:http://blog.csdn.net/jasonblog/article/details/49909209 1. 相关API和数据结构 由于我们在上面回溯线程调用栈拿到的是一组地址,所以这里进行符号化的输入输出应该分别是地址和符号,接口设计类似如下: - (NSString *)s…

linux---基础04

六、网卡配置 分配临时IP地址: ifconfig eth0 up // 启用eth0网卡ifconfig eth0 192.168.1.104 netmask 255.255.255.0静态分配IP地址: vi /etc/sysconfig/network-scripts/ifcfg-eth0service network restart //重启 network服务(重新加载网卡配置)动态…