UIView動畫

主要用到兩個方法:

/**
 *  添加關(guān)鍵幀方法
 *
 *  @param duration   動畫時長
 *  @param delay      動畫延遲
 *  @param options    動畫效果選項
 *  @param animations 動畫執(zhí)行代碼
 *  @param completion 動畫結(jié)束執(zhí)行代碼
 */
class  func animateKeyframes(withDuration 
  duration: TimeInterval, 
  delay: TimeInterval, 
  options: UIViewKeyframeAnimationOptions = [], 
  animations: @escaping () -> Swift.Void, 
  completion: (@escaping (Bool) -> Swift.Void)? = nil)
/**
 *  添加關(guān)鍵幀
 *
 *  @param frameStartTime 動畫相對開始時間,取值為0-1.0
 *  @param frameDuration  動畫相對持續(xù)時間鸵隧,取值為0-1.0
 *  @param animations     動畫執(zhí)行代碼
 */
class func addKeyframe(withRelativeStartTime
   frameStartTime: Double, 
  relativeDuration frameDuration: Double, 
  animations: @escaping () -> Swift.Void)

例子

func Animation(){
        let animationView = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
        animationView.backgroundColor = UIColor.green
        self.view.addSubview(animationView)
        
        UIView.animateKeyframes(withDuration: 3, delay: 0, options: .calculationModeLinear, animations: {
            UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration:0.2) {
                animationView.frame.origin.y = 500
            }
            UIView.addKeyframe(withRelativeStartTime: 0.2, relativeDuration: 0.5) {
                animationView.frame.origin.x = 300
            }
            UIView.addKeyframe(withRelativeStartTime: 0.7, relativeDuration: 0.3) {
                animationView.frame.origin.y = 300
            }
        }) { (finished) in
                //動畫完成
        }
    }

翻轉(zhuǎn)和翻頁動畫

主要方法

/**
 *  
 * 為view設(shè)置翻轉(zhuǎn)貨翻頁動畫
 *  @param transition   設(shè)置動畫類型
 *  @param for view      執(zhí)行動畫的view
 *  @param cache    
 */
class func setAnimationTransition(_ transition: UIViewAnimationTransition, 
  for view: UIView, 
  cache: Bool)

設(shè)置動畫類型

public enum UIViewAnimationTransition : Int {

    
    case none

    case flipFromLeft //從左往右翻轉(zhuǎn)

    case flipFromRight //從右往左翻轉(zhuǎn)

    case curlUp //從上往下翻轉(zhuǎn)

    case curlDown //從下往上翻轉(zhuǎn)
}

例子:

func Animation6(){
        UIView.beginAnimations(nil, context: nil)
        UIView.setAnimationDuration(1)
        UIView.setAnimationCurve(.easeInOut)
        //從左向右翻轉(zhuǎn)
        UIView.setAnimationTransition(UIViewAnimationTransition.flipFromLeft, for: animationView, cache: false)//從左向右翻轉(zhuǎn)
        UIView.commitAnimations()
    }

旋轉(zhuǎn),縮放,平移,取反

實現(xiàn)方法為設(shè)置View 的transform屬性
創(chuàng)建一個CGAffineTransform實例

//向右向下平移是個單位议谷,中心點位置改變
let transform = CGAffineTransform(translationX: 10, y: 10)
//旋轉(zhuǎn)PI /4 個角度粱锐,中心點位置不變
let transform = CGAffineTransform(rotationAngle: CGFloat(M_PI_4))
//寬縮放為原來的2倍朱嘴,高縮放為原來的3倍巡社,中心點位置不變
let transform = CGAffineTransform(scaleX: 2, y: 3)
//取反是吧CGAffineTransform的值取反山橄,不是恢復(fù)到原來的狀態(tài)
//例如:順時針旋轉(zhuǎn)90度取反就是逆時針旋轉(zhuǎn)90度怀各。
let transform = CGAffineTransform.inverted(animationView.transform)

例子:

//平移
func Animation11(){
        let transform = CGAffineTransform(translationX: 10, y: 10)
        UIView.animate(withDuration: 2, animations: {
            self.animationView.transform = transform
            
        }) { (finished) in
            print(NSStringFromCGRect(self.animationView.frame))
        }
    }

在主線程中調(diào)用Animation()方法即可查看效果。
本文參考文章:
http://www.tuicool.com/articles/BjMrQne
http://blog.csdn.net/mad2man/article/details/17554621

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恳谎,一起剝皮案震驚了整個濱河市芝此,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌因痛,老刑警劉巖婚苹,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婚肆,居然都是意外死亡租副,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門较性,熙熙樓的掌柜王于貴愁眉苦臉地迎上來用僧,“玉大人结胀,你說我怎么就攤上這事≡鹧” “怎么了糟港?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長院仿。 經(jīng)常有香客問我秸抚,道長,這世上最難降的妖魔是什么歹垫? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任剥汤,我火速辦了婚禮,結(jié)果婚禮上排惨,老公的妹妹穿的比我還像新娘吭敢。我一直安慰自己,他們只是感情好暮芭,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布鹿驼。 她就那樣靜靜地躺著,像睡著了一般辕宏。 火紅的嫁衣襯著肌膚如雪畜晰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天瑞筐,我揣著相機(jī)與錄音凄鼻,去河邊找鬼。 笑死聚假,一個胖子當(dāng)著我的面吹牛野宜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播魔策,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼河胎!你這毒婦竟也來了闯袒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤游岳,失蹤者是張志新(化名)和其女友劉穎政敢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胚迫,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡喷户,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了访锻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褪尝。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡闹获,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出河哑,到底是詐尸還是另有隱情避诽,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布璃谨,位于F島的核電站沙庐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏佳吞。R本人自食惡果不足惜拱雏,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望底扳。 院中可真熱鬧铸抑,春花似錦、人聲如沸花盐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽算芯。三九已至柒昏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熙揍,已是汗流浹背职祷。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留届囚,地道東北人有梆。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像意系,于是被迫代替她去往敵國和親泥耀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容