您的位置:首页 > 移动开发 > IOS开发

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

2016-03-21 15:53 363 查看
一、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);
}];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: