iOS開發 30多個iOS常用動畫,帶詳細注釋

2021-06-28 11:57:12 字數 3797 閱讀 6934

@inte***ce coreanimationeffect : nsobject

// reveal

+ (void)animationrevealfrombottom:(uiview *)view;

+ (void)animationrevealfromtop:(uiview *)view;

+ (void)animationrevealfromleft:(uiview *)view;

+ (void)animationrevealfromright:(uiview *)view;

// 漸隱漸消

+ (void)animationeasein:(uiview *)view;

+ (void)animationeaseout:(uiview *)view;

// 翻轉

+ (void)animationflipfromleft:(uiview *)view;

+ (void)animationflipfromrigh:(uiview *)view;

// 翻頁

+ (void)animationcurlup:(uiview *)view;

+ (void)animationcurldown:(uiview *)view;

// push

+ (void)animationpushup:(uiview *)view;

+ (void)animationpushdown:(uiview *)view;

+ (void)animationpushleft:(uiview *)view;

+ (void)animationpushright:(uiview *)view;

// move

+ (void)animationmoveup:(uiview *)view duration:(cftimeinterval)duration;

+ (void)animationmovedown:(uiview *)view duration:(cftimeinterval)duration;

+ (void)animationmoveleft:(uiview *)view;

+ (void)animationmoveright:(uiview *)view;

// 旋轉縮放

// 各種旋轉縮放效果

+ (void)animationrotateandscaleeffects:(uiview *)view;

// 旋轉同時縮小放大效果

+ (void)animationrotateandscaledownup:(uiview *)view;

@end

@implementation coreanimationeffect

catransition *animation = [catransition animation];

animation.delegate = self;

animation.duration = duration;

animation.timingfunction = [camediatimingfunction functionwithname:timingfunction];

animation.fillmode = kcafillmodeforwards;

// animation.removedoncompletion = no;

** type

* * 各種動畫效果 其中除了'fade', `movein', `push' , `reveal' ,其他屬於私有的api(我是這麼認為的,可以點進去看下注釋).

* ↑↑↑上面四個可以分別使用'kcatransitionfade', 'kcatransitionmovein', 'kcatransitionpush', 'kcatransitionreveal'來呼叫.

* @"cube" 立方體翻滾效果

* @"movein" 新檢視移到舊檢視上面

* @"reveal" 顯露效果(將舊檢視移開,顯示下面的新檢視)

* @"fade" 交叉淡化過渡(不支援過渡方向) (預設為此效果)

* @"pagecurl" 向上翻一頁

* @"pageuncurl" 向下翻一頁

* @"suckeffect" 收縮效果,類似系統最小化視窗時的神奇效果(不支援過渡方向)

* @"rippleeffect" 滴水效果,(不支援過渡方向)

* @"oglflip" 上下左右翻轉效果

* @"rotate" 旋轉效果

* @"push"

* @"camerairishollowopen" 相機鏡頭開啟效果(不支援過渡方向)

* @"camerairishollowclose" 相機鏡頭關上效果(不支援過渡方向)

*** type

* * kcatransitionfade 交叉淡化過渡

* kcatransitionmovein 新檢視移到舊檢視上面

* kcatransitionpush 新檢視把舊檢視推出去

* kcatransitionreveal 將舊檢視移開,顯示下面的新檢視

*/animation.type = type;

** subtype

* * 各種動畫方向

* * kcatransitionfromright; 同字面意思(下同)

* kcatransitionfromleft;

* kcatransitionfromtop;

* kcatransitionfrombottom;

*** subtype

* * 當type為@"rotate"(旋轉)的時候,它也有幾個對應的subtype,分別為:

* 90cw 逆時針旋轉90°

* 90ccw 順時針旋轉90°

* 180cw 逆時針旋轉180°

* 180ccw 順時針旋轉180°

**** type與subtype的對應關係(必看),如果對應錯誤,動畫不會顯現.

* * @see

*animation.subtype = subtype;

** * 所有核心動畫和特效都是基於caanimation,而caanimation是作用於calayer的.所以把動畫新增到layer上.

* forkey 可以是任意字串.

*[theview.layer addanimation:animation forkey:nil];

} // presentmodalviewcontroller

+ (void)animationmoveup:(uiview *)view duration:(cftimeinterval)duration

// dissmodalviewcontroller

+ (void)animationmovedown:(uiview *)view duration:(cftimeinterval)duration

+(void)animationrotateandscaleeffects:(uiview 

)view

IOS開發常用巨集

字串是否為空 define kstringisempty str str iskindofclass nsnull class str nil str length 1 yes no 陣列是否為空 define karrayisempty array array nil array iskindof...

iOS開發 常用排序

1.針對陣列直接倒序 倒序 nsmutablearray tempmarr nsmutablearray arraywithobjects c d a b nil tempmarr nsmutablearray tempmarr reverseobjectenumerator allobjects ...

iOS開發常用巨集

大家都是知道使用巨集不僅方便,而且可以提高開發效率。下面總結了ios開發過程中的一些常用巨集,會持續的往裡面新增。字串是否為空 define kstringisempty str str iskindofclass nsnull class str nil str length 陣列是否為空 def...