iOS 對象沿著指定路徑進行動畫

以下方法可作為兩步實現(xiàn):

以下方法在自定義view的類里面實現(xiàn),可放在自定義函數(shù)中自行控制觸法絮记。也可放在drawRect或layoutSubviews里面讓view在顯 示時觸法洗做。但推薦放在自定義view中觸發(fā)黎烈,因為這樣才可以做到自行控制巷怜,并保證同時只有一個在運行呢袱,否則會因為view的改變導致重繪姆蘸,導致同時執(zhí)行多 個相同的動畫墩莫,會影響效果和耗費內存。

一》讓view對象沿指定的路徑進行動畫的方法:

以下是指定路徑:

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

//Set some variables on the animation

pathAnimation.calculationMode = kCAAnimationPaced;

//We want the animation to persist - not so important in this case - but kept for clarity

//If we animated something from left to right - and we wanted it to stay in the new position,

//then we would need these parameters

pathAnimation.fillMode = kCAFillModeForwards;

pathAnimation.removedOnCompletion = NO;

pathAnimation.duration = 10;

//Lets loop continuously for the demonstration

pathAnimation.repeatCount = 10;

//Setup the path for the animation - this is very similar as the code the draw the line

//instead of drawing to the graphics context, instead we draw lines on a CGPathRef

//CGPoint endPoint = CGPointMake(310, 450);

CGMutablePathRef curvedPath = CGPathCreateMutable();

CGPathMoveToPoint(curvedPath, NULL, 10, 10);

CGPathAddQuadCurveToPoint(curvedPath, NULL, 10, 450, 310, 450);

CGPathAddQuadCurveToPoint(curvedPath, NULL, 310, 10, 10, 10);

//Now we have the path, we tell the animation we want to use this path - then we release the path

pathAnimation.path = curvedPath;

CGPathRelease(curvedPath);

在指定路徑后逞敷,指定動畫的對象狂秦,(在此用UIImageView舉例:)

UIImageView *circleView = [[UIImageView alloc] initWithImage:circle];

circleView.frame = CGRectMake(1, 1, 40, 40);

[self addSubview:circleView];

//Add the animation to the circleView - once you add the animation to the layer, the animation starts

[circleView.layer addAnimation:pathAnimation

forKey:@"moveTheSquare"];

二>.若要把指定的路徑以線條或其他方法顯示出來,則要繪制路徑推捐,方法是:

UIGraphicsBeginImageContext(CGSizeMake(320,460));

CGContextRef ctx = UIGraphicsGetCurrentContext();

//Set variables in the context for drawing

CGContextSetLineWidth(ctx, 1.5);

CGContextSetStrokeColorWithColor(ctx, [UIColor whiteColor].CGColor);

//Set the start point of your drawing

CGContextMoveToPoint(ctx, 10, 10);

//The end point of the line is 310,450 .... i'm also setting a reference point of 10,450

//A quadratic bezier curve is drawn using these coordinates - experiment and see the results.

CGContextAddQuadCurveToPoint(ctx, 10, 450, 310, 450);

//Add another curve, the opposite of the above - finishing back where we started

CGContextAddQuadCurveToPoint(ctx, 310, 10, 10, 10);

//Draw the line

CGContextDrawPath(ctx, kCGPathStroke);

若要繪制圖片背景(直接添加即可)裂问,則:

//With the image, we need a UIImageView

UIImage *image = [UIImage imagewithName:@"a.png"];

UIImageView *curveView = [[UIImageView alloc] image];

//Set the frame of the view - which is used to position it when we add it to our current UIView

curveView.frame = CGRectMake(1, 1, 320, 460);

curveView.backgroundColor = [UIColor greenColor];

[self addSubview:curveView];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子堪簿,更是在濱河造成了極大的恐慌痊乾,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椭更,死亡現(xiàn)場離奇詭異哪审,居然都是意外死亡,警方通過查閱死者的電腦和手機虑瀑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門湿滓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舌狗,你說我怎么就攤上這事叽奥。” “怎么了痛侍?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵朝氓,是天一觀的道長。 經(jīng)常有香客問我主届,道長赵哲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任岂膳,我火速辦了婚禮誓竿,結果婚禮上,老公的妹妹穿的比我還像新娘谈截。我一直安慰自己筷屡,他們只是感情好,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布簸喂。 她就那樣靜靜地躺著毙死,像睡著了一般。 火紅的嫁衣襯著肌膚如雪喻鳄。 梳的紋絲不亂的頭發(fā)上扼倘,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音除呵,去河邊找鬼再菊。 笑死,一個胖子當著我的面吹牛颜曾,可吹牛的內容都是我干的纠拔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼泛豪,長吁一口氣:“原來是場噩夢啊……” “哼稠诲!你這毒婦竟也來了侦鹏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤臀叙,失蹤者是張志新(化名)和其女友劉穎略水,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劝萤,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡渊涝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了稳其。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驶赏。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖既鞠,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情盖文,我是刑警寧澤嘱蛋,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站五续,受9級特大地震影響洒敏,放射性物質發(fā)生泄漏。R本人自食惡果不足惜疙驾,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一凶伙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧它碎,春花似錦函荣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挖息,卻和暖如春金拒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背套腹。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工绪抛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人电禀。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓幢码,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鞭呕。 傳聞我的和親對象是個殘疾皇子蛤育,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容

  • 對象的動畫運動路徑設 以下方法可作為兩步實現(xiàn): 以下方法在自定義view的類里面實現(xiàn)宛官,可放在自定義函數(shù)中自行控制觸...
    韓七夏閱讀 2,422評論 1 1
  • 多年前我在紗廠做梳棉擋車工。你們很奇怪瓦糕,什么是梳棉機底洗?通俗的說就是通盤的鋸齒狀的針布包在大圓空心鐵圈上,通過除雜喂...
    騎手為什么歌唱草原閱讀 1,879評論 1 3
  • 我想擁有一座孤島咕娄,我想我需要一個人生活一些時間亥揖,我想忘記一些事情,我想……我忘了我想要什么圣勒。 我的想法太多费变,晚上做...
    K歪閱讀 182評論 0 0
  • 昨天居然忘了寫…… 什么情況【物理老師臉】 1.練字√ 2.化學筆記【一定要完成完成完成碎碎念】√ 3.全部作業(yè)做...
    妮可妮可喳閱讀 295評論 0 0