形變屬性transform
- 在日常開發(fā)中,用到
transform
的機會比較少,至少大部分應用是用不到平移、旋轉、縮放的;
- 可能是我從事的項目是動畫比較少,用到
transform
的地方只有在鍵盤彈出收縮的時候調整view的位置
- 形變屬性分成平移、旋轉、縮放
平移
// 平移
// 第一個數(shù)代表x,整數(shù)表示向右,負數(shù)表示向左
// 第二個數(shù)代表y,整數(shù)表示向下,負數(shù)表示向上
self.view.transform = CGAffineTransformMakeTranslation(-100, 100);
旋轉
// 旋轉
// 參數(shù)是需要旋轉的弧度
self.view.transform = CGAffineTransformMakeRotation(-M_PI_4);
縮放
// 縮放
// 第一個數(shù)代表x,表示水平方向上的縮放比例
// 第二個數(shù)代表y,表示垂直方向上的縮放比例
self.view.transform = CGAffineTransformMakeScale(0.8, 0.5);
注意點
- 帶有make的方法都是創(chuàng)建一個干凈的形變量,對比的對象是控件最初的位置和形狀
// 平移
CGAffineTransformMakeTranslation(-100, 100);
// 縮放
CGAffineTransformMakeScale(0.8, 0.5);
// 旋轉
CGAffineTransformMakeRotation(-M_PI_4);
- 如果旋轉、縮放、平移一起使用,那么上面的這三個方法就不能使用了,需要使用的方法是在形變的基礎上進行形變
//向左平移100,向下平移100
CGAffineTransform translation = CGAffineTransformMakeTranslation(-100, 100);
//水平和垂直方向上都縮小一半
CGAffineTransform scaleTranslation = CGAffineTransformScale(translation, 0.5, 0.5);
//旋轉180°
CGAffineTransform rotateScaleTranslation = CGAffineTransformRotate(scaleTranslation, M_PI_2);
//設置transform
self.view.transform = rotateScaleTranslation;
- 清空transform,回到最原始的狀態(tài)
// 清空transform,以前的平移、縮放、旋轉都會消失
self.view.transform = CGAffineTransformIdentity;
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。