iOS下UIButton壓下後播放動畫,鬆開後動畫消失的實現

來源:互聯網
上載者:User

需求:頁面上有個按鈕,使用者要求當手指按下這個按鈕的時候,在這個按鈕的周圍出現一個旋轉的圓圈,當鬆開手指後這個動畫消失。

具體的頁面配置和事件綁定的方式我就不再描述了。這裡只說一下需要幫定的UIButton的事件吧,壓下的方法要綁定的UIButton事件是的Touch Down,鬆開的方法要綁定的UIButton事件是Touch Up InsideTouch Up Outside(如果你想當手指離開按鈕的時候就取消動畫的播放,你需要在綁定Touch Drag Outside事件)

具體的代碼如下:

 1 -(void)pressedEvent:(id)sender {//按鈕的壓下事件的回應程式法 2     UIButton *btn = sender; 3     NSArray *imgArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"anim_0"],[UIImage imageNamed:@"anim_1"],[UIImage imageNamed:@"anim_2"],[UIImage imageNamed:@"anim_3"],nil];//定義一個動畫的幀數組 4     UIImageView *animImgView = [[UIImageView alloc]init];//初始化一個UIImageView用於逐幀播放我們的動畫 5     animImgView.frame = CGRectMake(0, 0, ((UIImage*)[imgArray objectAtIndex:0]).size.width, ((UIImage*)[imgArray objectAtIndex:0]).size.height);//這裡預設認為動畫的每幀大小是一致的,顧取出第一個圖片的大小來作為UIImageView的大小 6     animImgView.center = btn.center;//上邊只是這是了UIImageView的大小,這裡設定他的擺放位置,讓動畫的中心點和按鈕的中心點重疊 7     animImgView.tag = 10000;//設定這個是為了在壓下的按鈕觸發的釋放動作中擷取到這個播放動畫的UIImageView 8     animImgView.animationImages = imgArray; //將逐幀動畫的數組傳遞給UIImageView 9     animImgView.animationDuration = 1; //瀏覽所有圖片一次所用的時間10     animImgView.animationRepeatCount = 0; // 0 = loops forever 動畫重複次數11     [animImgView startAnimating]; //開始播放動畫12     [self.view addSubview:animImgView]; //添加視圖到表單中13     [self.view sendSubviewToBack:animImgView];//將動畫播放的視圖移到elf.view的最底層,這裡需要注意圖層遮擋問題14     [animImgView release];15 }16 -(void)unpressedEvent:(id)sender {//按鈕的鬆開事件的回應程式法17     [[self.view viewWithTag:10000] removeFromSuperview];18 }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.