• Hello_IOS ios开发transform属性


    #import "ViewController.h"
    
    @interface ViewController ()
    @property (weak, nonatomic) IBOutlet UIImageView *imageV;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (IBAction)moveUp:(id)sender {
        //平移
        [UIView animateWithDuration:0.5 animations:^{
            //使用Make,它是相对于最原始的位置做的形变.不累加形变,且多次点击只形变一次
            //self.imageV.transform = CGAffineTransformMakeTranslation(0, -100);
            //相对于上一次做形变.初始值self.imageV.transform为0,多次点击,会自动在上一次形变的基础上做平移
            self.imageV.transform = CGAffineTransformTranslate(self.imageV.transform, 0, -100);
        }];
        
    }
    - (IBAction)moveDown:(id)sender {
        
        //平移
        [UIView animateWithDuration:0.5 animations:^{
            //使用Make,它是相对于最原始的位置做的形变.
            //self.imageV.transform = CGAffineTransformMakeTranslation(0, -100);
            //相对于上一次做形变.
            self.imageV.transform = CGAffineTransformTranslate(self.imageV.transform, 0, 100);
        }];
    }
    
    - (IBAction)rotation:(id)sender {
        
        [UIView animateWithDuration:0.5 animations:^{
            
            //旋转(旋转的度数, 是一个弧度),M_PI_4,_下划线表示一个除号/
            //self.imageV.transform = CGAffineTransformMakeRotation(M_PI_4);
            
            self.imageV.transform = CGAffineTransformRotate(self.imageV.transform, M_PI_4);
            
        }];
        
    }
    - (IBAction)scale:(id)sender {
        
        
        [UIView animateWithDuration:0.5 animations:^{
            
           //缩放
            //self.imageV.transform = CGAffineTransformMakeScale(0.5, 0.5);
            self.imageV.transform = CGAffineTransformScale(self.imageV.transform, 0.8, 0.8);
            
           
        }];
        
        
    }
    
    /**
     *    总结:
     
     1:平移:transform是结构体,定义一个transform:CGAffineTransform form
     
     //使用Make,它是相对于最原始的位置做的形变.不累加形变,且多次点击只形变一次
     //self.imageV.transform = CGAffineTransformMakeTranslation(0, -100);
     //相对于上一次做形变.初始值self.imageV.transform为0,多次点击,会自动在上一次形变的基础上做平移
     self.imageV.transform = CGAffineTransformTranslate(self.imageV.transform, 0, -100);
     
     
     2:旋转:
     //旋转(旋转的度数, 是一个弧度),M_PI_4,_下划线表示一个除号/
     //self.imageV.transform = CGAffineTransformMakeRotation(M_PI_4);
     
     self.imageV.transform = CGAffineTransformRotate(self.imageV.transform, M_PI_4);
     
     
     3:缩放:
     //缩放
     //self.imageV.transform = CGAffineTransformMakeScale(0.5, 0.5);
     self.imageV.transform = CGAffineTransformScale(self.imageV.transform, 0.8, 0.8);
     
     
     4:清空形变属性:
       CGAffineTransform form = CGAffineTransformIdentity;
       self.imageV.transform = form;
     
     
     5:1:在实际开发中,使用场景:1:当涉及一些frame的改变或是形变的时候可以用transform来取代frame 2:一般在实际开发中都是平移,旋转缩放混合使用。
     
     */
    
    @end
  • 相关阅读:
    Xshell如何配置并远程连接Linux服务器详解
    VMware如何克隆一个虚拟机
    如何通过VMware安装Linux CentOS 7.7系统
    如何VMware创建Linux虚拟机并设置虚拟机网络
    自动化运维工具Ansible之LNMP实践环境部署
    自动化运维工具Ansible之Roles角色详解
    自动化运维工具Ansible之Tests测验详解
    Ansible Jinja2 模板使用
    Ansible playbook Vault 加密
    Ansible playbook 编程
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5949487.html
Copyright © 2020-2023  润新知