zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【译文】纯HTML5捕获音频流和视频流
    Vue中scoped属性浅析
    jmeter 在liunx 环境下的测试问题汇总
    windows Jmeter 安装环境配置
    基于ghz 对grpc 服务进行压测
    使用powershell脚本自动发布
    SqlServer 重建索引脚本
    配置nginx代理本地多个站点到制定域名
    Xposed 插件开发入门教程(一)
    python 字典
  • 原文地址:https://www.cnblogs.com/hopeanCom/p/2845448.html
Copyright © 2011-2022 走看看