標籤:style class c ext color a
這些屬性,內部都是結構體:CGRect CGPoint CGFloat
背景知識:所有的控制項都是view的子類,螢幕就是一個大的view;每個view都有個viewController,它是view的管家,每個view對應著一個viewController,來管理view。
-
frame & bounds & center
========================================
1> frame可以修改對象的位置和尺寸
2> bounds可以修改對象的尺寸
3> center可以修改對象的位置,是對象的中心的x,y座標
2.首尾式動畫
========================================
// beginAnimations表示此後的代碼要“參與到”動畫中
[UIView beginAnimations:nil context:nil];
// setAnimationDuration用來指定動畫期間
[UIView setAnimationDuration:2.0];
self.headImageView.bounds = rect;
// commitAnimations,將beginAnimation之後的所有動畫提交並產生動畫
[UIView commitAnimations];
3. transform屬性
========================================
在OC中,通過transform屬性可以修改對象的平移、縮放比例和旋轉角度
常用的建立transform結構體方法分兩大類
1> 建立“基於控制項初始位置”的形變
CGAffineTransformMakeTranslation
CGAffineTransformMakeScale
CGAffineTransformMakeRotation
2> 建立“基於transform參數”的形變,返回的時當前的座標值,不需要一直計算,這個比較常用
所以會多一個參數:就是當前的控制項對象;
CGAffineTransformTranslate
CGAffineTransformScale
CGAffineTransformRotate
補充:
在OC中,所有跟角度相關的數值,都是弧度值,180° = M_PI
正數表示順時針旋轉
負數表示逆時針旋轉
提示:由於transform屬性可以基於控制項的上一次的狀態進行疊加形變,例如,先旋轉再平移
因此在實際動畫開發中,當涉及位置、尺寸形變效果時,大多修改控制項的transform屬性,
而不是frame、bounds、center