博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIView的旋转iOS开发
阅读量:6252 次
发布时间:2019-06-22

本文共 1095 字,大约阅读时间需要 3 分钟。

更多阅读请访问

有关UIView坐标变换的,但是经常不能得到自己想要的效果,今天就把它仔细研究了下。记下来等以后忘记的时候再复习

重写shouldAutorateToInterfaceOrientation:,限制某个方向会改变原点的位置,原点会一直保持在左上角,但已经不是原来的左上角了

 

setStatusBarOrientation.改变状态栏的方向。它不会改变原点的位置,但会改变键盘的方向

旋转前self.myviewframe ={0,0,320,50}

CGAffineTransform at =CGAffineTransformMakeRotation(M_PI/2);

[self.myview setTransform:at];

旋转后frame={135,-135,50,320},视图的所有像素旋转90

坐标是相对于父视图的

 

假如view已经转成竖的,这时通过设置frame而不是通过setTransform强制成横的话,会截掉部分图像

更多阅读请访问

坐标多次变换的合成,要以被变换的view的局部坐标系为参照,比如

testView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];UILabel*label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 20)];label.text =@"Test";label.tag=100;[testView addSubview:label];此时的 frame ={
0,0,320,50}

CGAffineTransform at =CGAffineTransformMakeRotation(M_PI/2);先顺时钟旋转90at =CGAffineTransformTranslate(at,200,0);,[self.testView setTransform:at];

此时的 frame ={135,65,50,320},可以看到宽高已经反过来了,view中的像素方向也改变了,而如果只是用setFrame来改变宽高的话是不会改变像素方向的

更多阅读请访问

文章出处:http://www.cnblogs.com/pengyingh/articles/2382099.html

http://www.hopean.com

转载于:https://www.cnblogs.com/hopeanCom/archive/2012/11/28/2845448.html

你可能感兴趣的文章
【反传销】春节一个短暂误入传销和脱身的真实故事以及对技术的思考(二)回家之路...
查看>>
166. Fraction to Recurring Decimal
查看>>
(转)Java线程:新特征-条件变量
查看>>
建立ORACLE10G DATA GUARD--->Physical Standby
查看>>
Python pyenv
查看>>
使用LotusScript操作Lotus Notes RTF域
查看>>
IPv4头部结构具体解释
查看>>
帕雷托最优(Pareto optimality)、帕雷托效率(Pareto efficiency)
查看>>
PHP 面向对象
查看>>
getResourceAsStream和getResource的用法及Demo实例
查看>>
[C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密
查看>>
javascript 自定义错误处理
查看>>
POJ 3278 Catch That Cow(BFS,板子题)
查看>>
Ubuntu下U盘只读文件系统,图标上锁,提示无法修改
查看>>
TCP/IP具体解释学习笔记--TCP的超时与重传
查看>>
C#设计模式之十一享元模式(Flyweight Pattern)【结构型】
查看>>
基于zookeeper简单实现分布式锁
查看>>
Makefile:160: recipe for target 'all' failed (Ubuntu 16.06 + Opencv3.2)解决办法
查看>>
a WebSite for MapXtreme2005 Crack
查看>>
几种函数调用方式
查看>>