UIView的旋转iOS开发

更多阅读请访问http://www.hopean.com

有关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强制成横的话,会截掉部分图像

更多阅读请访问http://www.hopean.com 

坐标多次变换的合成,要以被变换的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);先顺时钟旋转90
at =CGAffineTransformTranslate(at,200,0);,
[self.testView setTransform:at]; 

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

更多阅读请访问http://www.hopean.com

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

http://www.hopean.com

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

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

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

相关文章

jsp中字段截取

jsp页面上截取 <c:choose><c:when test"${fn:length(ad.remark) > 80}"><c:out value"${fn:substring(ad.remark, 0, 80)}..." /></c:when><c:otherwise><c:out value"${ad.remark}"/></c:otherwise&…

OPENWRT使用命令行设置无线和有线网络

在我们将路由器固件刷成开源的基于Linux内核的openwrt系统后&#xff0c;由于openwrt默认未安装WEB管理界面&#xff0c;所以我们需要先通过SSH或者telnet对路由器进行网络设置&#xff0c;设置完成后可通过openwrt的软件包管理opkg安装web设置界面Luci。 设置lan ip(即访问路…

Linux下安装nginx, php, php-fpm并配置

环境&#xff1a; Fedora20 目标: 在Fedora20上安装好nginx服务器&#xff0c;并可正确解析php文件 1. 安装&#xff1a; yum makecache yum install nginx php php-fpm 2. nginx的配置 按默认配置(网站根目录路径&#xff1a;/usr/share/nginx/html)&#xff0c;一般也是OK…

Spring中Bean的生命中期与InitializingBean和DisposableBean接口

Spring提供了一些标志接口&#xff0c;用来改变BeanFactory中的bean的行为。它们包括InitializingBean和DisposableBean。实现这些接口将会导致BeanFactory调用前一个接口的afterPropertiesSet()方法&#xff0c;调用后一个接口destroy()方法&#xff0c;从而使得bean可以在初始…

uni-app微信小程序uni.navigateTo跳转无效问题;记录一次uni-app页面跳转无效,来回跳转问题;wx.navigateTo ,跳转超过10次怎么点不动的解决办法。

场景需求&#xff1a;从小程序A页面跳转到小程序B页面&#xff0c;然后B页面还可以跳到A页面。 跳转失效原因&#xff1a; –1.uni.navigateTo只能跳转到非tabBar页面&#xff0c;tabBar导航栏页面只能用uni.switchTab方法跳转&#xff1b; –2.uni.navigateTo跳转的页面栈太多…

VIM选择文本块/复制/粘贴

在正常模式下&#xff08;按ESC进入&#xff09;按键v进入可视化模式&#xff0c;然后按键盘左右键或h,l键即可实现文本的选择。 其它相关命令&#xff1a;   v&#xff1a;按字符选择。经常使用的模式&#xff0c;所以亲自尝试一下它。 V&#xff1a;按行选择。这在你想拷…

微信小程序tabBar导航栏页和其他页执行onLoad与onShow时机;tabBar页获取不到参数问题;navigateTo跳转无效问题;onShow执行两次问题;

1.注意点&#xff1a; 只有五种情况会触发导航栏tabBar页的onLoad函数&#xff0c;分别是&#xff1a; –1.1&#xff1a;首次进入到导航栏tabBar页面&#xff1b; –1.2&#xff1a;从微信分享进入的导航栏tabBar页面&#xff1b; –1.3&#xff1a;识别二维码跳转到小程序的导…

20160512关于mac安装caffe的记录

记得2015年在mac系统上安装过一次caffe&#xff0c;非常顺利&#xff0c;但是最近群里许多同学反映mac安装caffe出现了各种问题&#xff0c;同时我也在帮助别人安装caffe的时候也遇到了一些坑&#xff0c;不再像以前这么顺利了。估计与操作系统&#xff0c;caffe升级有关。 今晚…

tar打包时排除一些文件或者目录

From: http://www.blogjava.net/zhyiwww/archive/2012/08/23/386119.html 用tar打包时排除文件&#xff1a;可以使用-exclude参数如&#xff1a; tar cvfz backup_1.tar.gz /opt/data --excluderesource*在打包/opt/data时就排除了resource命名的目录和文件。如果想不包含部…

linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结

Linux下最常用的打包程序就是tar了&#xff0c;使用tar程序打出来的包我们常称为tar包&#xff0c;tar包文件的命令通常都是以.tar结尾的。生成tar包后&#xff0c;就可以用其它的程序来进 行压缩了&#xff0c;所以首先就来讲讲tar命令的基本用法&#xff1a;   tar命令的选…

去除多余的0;正则表达式:去掉数字(整数、小数)前面多余的零

方案1&#xff1a; 来源&#xff1a;http://zhidao.baidu.com/question/277893180.html如果是整数&#xff1a;去掉整数前的零 例如&#xff1a;0098765--->98765 如果是小数&#xff1a;去掉小数前的零 例如&#xff1a;000.333--->0.333 再例如000.00--->0.00<…

Python学习笔记(二)

2019独角兽企业重金招聘Python工程师标准>>> pickle #腌制 pickle.dump() #保存数据 pickle.load() #恢复数据 locals() # 返回当前作用域中的变量集合 with语句会自动处理所有已打开文件的关闭工作&#xff0c;类似C#中的using() >>> data[5,78,3,45,7,1]…

mac:在当前文件夹打开terminal终端

From: http://www.cnblogs.com/yjmyzz/p/3662507.html System Preferences -> Keyboard -> Shortcuts -> Services -> New Terminal at Folders/New Terminal Tab at Folder 这二项都勾上 然后在Finder中,在任何目录上右击->service就能看到进入terminal的选项

自定义控件(视图)2期笔记13:View的滑动冲突之 内部拦截法

1. 内部拦截法&#xff1a; 父容器不拦截事件&#xff0c;所有的事件全部都传递给子元素&#xff0c;如果子元素需要此事件就直接消耗掉&#xff0c;否则就交给父容器进行处理。 这种方法和Android中的事件分发机制不一样&#xff0c;需要配合requestDisallowInterceptTouchEve…

linux系统libpcap安装方法

依次执行下列三条命令即可安装&#xff0c;但如果希望libpcap能在linux上正常工作&#xff0c;则必须使内核支持”packet”协议&#xff0c;也即在编译内核时打开配置选项 CONFIG_PACKET(选项缺省为打开)。   然后&#xff0c;执行以下命令&#xff1a; (sudo) ./configure(…

微信小程序图片加载太慢;uni-app微信小程序加载图片优化;微信小程序图片image加载成功事件@load;图片加载成功触发@load事件

场景&#xff1a; 微信小程序&#xff0c;对于以下较大的图片&#xff08;例如几M&#xff09;&#xff0c;在真机运行时候加载比较慢&#xff0c;此时会有一个比较长时间的白屏&#xff0c;体验很差。 解决方案&#xff1a;图片未加载成功前&#xff0c;进行loading…;图片加载…

记一次索引构建问题

如果现在的数据集很大&#xff0c;构建索引会花费很长时间。可是&#xff0c;为了优化索引&#xff0c;我们必会通过explain命令&#xff0c;找出需要添加索引的字段。可是在生产环境中&#xff0c;要在大数据集建立所以&#xff0c;这简直是梦魇&#xff0c;如何解决呢。我们记…

循环队列及C语言实现一

循环队列是为了充分利用内存&#xff0c;进行数据操作的一种基本算法。具体实现方式可划分为&#xff1a;链式队列和静态队列&#xff0c;这里所谓的静态是指在一片连续的内存区域进行数据操作。本文只讲述静态队列&#xff0c;也是最简单的实现方式&#xff0c;链式队列以及链…

微信小程序自定义导航栏;uni-app微信小程序自定义顶部导航栏;微信小程序顶部导航栏高度;微信小程序左上角胶囊按钮;uni-app微信小程序左上角胶囊设置

本文是自定义微信小程序的顶部导航栏&#xff1b;自定义微信小程序底部导航栏tabBar看另外这篇 文末的两个文件代码可以直接复制使用 自定义导航栏页图 一、场景&#xff1a; 有些时候&#xff0c;微信小程序需要我们在导航栏做更多的操作样式&#xff08;例如高度、颜色、加…