在iOS中有個(gè)view有個(gè)屬性transfram,翻譯過來就是形變屬性.通過transform屬性可以修改對(duì)象的平移、縮放比例和旋轉(zhuǎn)角度,在開發(fā)中一般用于做動(dòng)畫的.
話不多少,直接上代碼:
//新建一個(gè)View;
UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[tempView addSubview:[[UISwitch alloc] init]];
tempView.backgroundColor = [UIColor redColor];
[self.view addSubview:tempView];
self.tempView = tempView;
平移:CGAffineTransformMakeTranslation
縮放:CGAffineTransformMakeScale
旋轉(zhuǎn):CGAffineTransformMakeRotation
1.單純視圖的平移,旋轉(zhuǎn),縮放
// 平移(參數(shù)為X軸和Y軸的平移數(shù))
self.tempView.transform = CGAffineTransformMakeTranslation(-100, 100);
// 旋轉(zhuǎn)(參數(shù)為旋轉(zhuǎn)角度)
self.tempView.transform = CGAffineTransformMakeRotation(-M_PI_4);
// 縮放(參數(shù)為X軸和Y軸的縮放比例)
self.tempView.transform = CGAffineTransformMakeScale(0.5, 0.5);
完全可以把這些放在動(dòng)畫中去
[UIView animateWithDuration:2.0 animations:^{
self.tempView.transform = CGAffineTransformMakeTranslation(-100, 100);
}];
2.讓視圖邊平移,邊縮放,邊旋轉(zhuǎn)
//transform:形變屬性,能完成的功能:平移、縮放、旋轉(zhuǎn)
[UIView animateWithDuration:2.0 animations:^{
CGAffineTransform translation = CGAffineTransformMakeTranslation(-100, 100);
//在縮放基礎(chǔ)上疊加平移
CGAffineTransform scaleTranslation = CGAffineTransformScale(translation, 0.5, 0.5);
//在旋轉(zhuǎn)基礎(chǔ)上疊加縮放和平移
CGAffineTransform rotateScaleTranslation = CGAffineTransformRotate(scaleTranslation, M_PI_2);
self.tempView.transform = rotateScaleTranslation;
}];
3.累計(jì)平移,縮放,旋轉(zhuǎn)(例如每次點(diǎn)擊按鈕讓視圖旋轉(zhuǎn)45°)
[UIView animateWithDuration:1.0 animations:^{
//獲取到上次旋轉(zhuǎn)后transform來進(jìn)行操作即可,平移,縮放同理
self.tempView.transform = CGAffineTransformRotate(self.tempView.transform, M_PI_4);
}];
4.清空transform
//清空transform孕锄,以前的平移、縮放、旋轉(zhuǎn)都會(huì)消失
[UIView animateWithDuration:2.0 animations:^{
self.tempView.transform = CGAffineTransformIdentity;
}];