zoukankan      html  css  js  c++  java
  • iOS开发基础篇-transform属性

    一、 transform 属性

      在OC中,通过 transform 属性可以修改对象的平移、缩放比例和旋转角度。

      1)创建“基于控件初始位置”的形变

       CGAffineTransformMakeRotation ——旋转

       CGAffineTransformMakeTranslation ——平移

       CGAffineTransformMakeScale ——缩放

      2)创建“基于 transform 参数”的形变

       CGAffineTransformTranslate 

       CGAffineTransformScale 

       CGAffineTransformRotate 

    补充:在OC中,所有跟角度相关的数值,都为弧度制 180度 = M_PI , 45度 = M_PI_4 。

      正数表示顺时针旋转,负数表示逆时针旋转。

      “基于 transform 参数”的形变可以基于控件上一次的状态进行叠加形变,如先旋转再平移。 

    二、示例

      用代码在 viewDidLoad 中添加控制旋转的按钮:

     1     //向左旋转按钮
     2     UIButton *leftrotatebtn = [UIButton buttonWithType:UIButtonTypeCustom];
     3     leftrotatebtn.frame = CGRectMake(125, 450, 80, 40);
     4     [leftrotatebtn setTitle:@"向左旋转" forState:UIControlStateNormal];
     5     [leftrotatebtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
     6     [leftrotatebtn setTag:1];
     7     [self.view addSubview:leftrotatebtn];
     8     //添加按钮的单击事件
     9     [leftrotatebtn addTarget:self action:@selector(rotate:) forControlEvents:UIControlEventTouchUpInside];
    10     
    11     //向右旋转按钮
    12     UIButton *rightrotatebtn = [UIButton buttonWithType:UIButtonTypeCustom];
    13     rightrotatebtn.frame = CGRectMake(125, 500, 80, 40);
    14     [rightrotatebtn setTitle:@"向右旋转" forState:UIControlStateNormal];
    15     [rightrotatebtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
    16     [rightrotatebtn setTag:0];
    17     [self.view addSubview:rightrotatebtn];
    18     //添加按钮的单击事件
    19     [rightrotatebtn addTarget:self action:@selector(rotate:) forControlEvents:UIControlEventTouchUpInside];

       viewDidLoad 是视图加载完成后调用的方法,通常在此方法中执行视图控制器的初始化工作。

      添加旋转按钮响应事件:

     1 - (void)rotate:(id)sender{
     2     UIButton *button = (UIButton *)sender;
     3     if (button.tag) {
     4         //self.headImageView.transform = CGAffineTransformMakeRotation(-M_PI_4);
     5         //逆时针旋转
     6         self.headImageView.transform = CGAffineTransformRotate(self.headImageView.transform, -M_1_PI);
     7     } else {
     8         //顺时针旋转
     9         self.headImageView.transform = CGAffineTransformRotate(self.headImageView.transform, M_PI_4);
    10     }
    11 }

    参考博客:iOS开发UI篇—transframe属性(形变)

    示例代码链接:http://pan.baidu.com/s/1skkbcw1

  • 相关阅读:
    openGL线s的绘制
    openGL绘制正方形
    openGL的使用步骤
    [归并排序][逆序数]Brainman
    [动态规划]Tak and Cards
    [STL][stack]简单计算器
    [题解]2018湘潭邀请赛
    [数论][组合数学]Iroha and a Grid
    [STL][stack]括号配对问题
    [简单思维题]Sequence(山东省第九届ACM大学生程序设计竞赛E题)
  • 原文地址:https://www.cnblogs.com/wjq-Law/p/5100108.html
Copyright © 2011-2022 走看看