iOS边练边学--transform的简单介绍并且用transform实现键盘处理

一、transform:形变属性,能完成功能:平移,缩放,旋转

<平移>

        // 根据给的移动距离平移
        self.tempView.transform = CGAffineTransformMakeTranslation(100, 100);

<缩放>

        // 根据给的缩放比例缩放,给负值,旋转缩放
        self.tempView.transform = CGAffineTransformMakeScale(0.6, 0.6);

<旋转>

        // 根据给的角度旋转,负数是逆时针旋转  M_PI_4(45°) M_PI_2(90°)  M_PI(180°)
        self.tempView.transform = CGAffineTransformMakeRotation(M_PI);

二、transform的叠加

        // 累加transform,先创建一个初始的transform
        CGAffineTransform translation = CGAffineTransformMakeTranslation(100, 100);
        // 叠加上一个transform,得到一个新的transform
        CGAffineTransform scaleTranslation = CGAffineTransformScale(translation, -0.6, -0.6);
        // 最终将混合的transform赋值给view
        self.tempView.transform = scaleTranslation;

三、清空transform--清除transform,不管是混合的还是单个的

        self.tempView.transform = CGAffineTransformIdentity;

四、transform键盘处理,第一次用的是修改约束,这次用transform,直接将self.view向上平移键盘的高度

- (void)keyboardChange:(NSNotification *)note
{
    // 取出时间
    CGFloat duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    // 取出键盘最终的frame
    CGRect rect = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
    // 平移的距离 = 屏幕的高度 - 键盘坐标的Y值
    CGFloat ty = [UIScreen mainScreen].bounds.size.height - rect.origin.y;
    [UIView animateWithDuration:duration animations:^{
        self.view.transform = CGAffineTransformMakeTranslation(0, - ty);
    }];
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值