1. 程式人生 > >[UIView beginAnimations:context:]與[UIView animateWithDuration:animations:]值得注意的一個區別

[UIView beginAnimations:context:]與[UIView animateWithDuration:animations:]值得注意的一個區別


看過官方文件的都知道,官方推薦在iOS4以後使用[UIView animateWithDuration:animations:],而不是原來的[UIView beginAnimations:context:],來完成動畫,雖然二者功能幾乎完全相同,但使用前者在一些情況下會方便不少,這些內容可以參考官方文件View Programming Guide For iOS的Animation一節.
二者有一個值得新手注意的區別就是[UIView animateWithDuration:animations:]預設會禁止觸控,手勢等的響應,這可以通過設定option選項來解決(直接引用StackOverFlow的一段了):

UIViewAnimationOptions options = UIViewAnimationCurveLinear | UIViewAnimationOptionAllowUserInteraction;
 
[UIView animateWithDuration:0.2 delay:0.0 options:options animations:^
 {
     highlightView.alpha = 1.0;
 
 } completion:nil];

就是這麼一點事兒,害我走了不少彎路(我也是新手哈),在這裡寫一下,提示一下有可能遇到同樣問題的人.

[UIView animateWithDuration:duration
                          delay:0.0
                        options:UIViewAnimationCurveEaseInOut //設定動畫型別
                     animations:^{
                         //開始動畫
                         [self updateArrowBtnTitle:YES];
                         rotateView.transform = CGAffineTransformMakeRotation((stickToDegrees/180)*M_PI);
                     }
                     completion:^(BOOL finished){
                         // 動畫結束時的處理
                     }];

[UIView animateWithDuration:] 方法僅支援ios4.0及以上版本。如果要相容以前的版本的話,還是需要使用 [UIView beginAnimation:] 方法


[UIView beginAnimations:nil context:nil];
    // fade out
    helpImageBtn.alpha = 0.0f;
    // set animation did stop selector
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
    [UIView commitAnimations];

   - (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
    if (self.retainedHelpImageBtn.superview) //先判斷父檢視再執行檢視移除
        [self.retainedHelpImageBtn removeFromSuperview];
   }



相關推薦

[UIView beginAnimations:context:][UIView animateWithDuration:animations:]值得注意一個區別

看過官方文件的都知道,官方推薦在iOS4以後使用[UIView animateWithDuration:animations:],而不是原來的[UIView beginAnimations:context:],來完成動畫,雖然二者功能幾乎完全相同,但使用前者在一些情況下

Qt Creator VS+Qt 一些值得注意的小差別

最近,專案方面需要將一個原本用VS+Qt開發的介面移植到Qt Creator上面。在這個過程中遇到了一些bug然後不斷debug,打算把它們分點寫下來,希望對有同樣需求的朋友能有一些幫助。 目前Qt的

核心動畫UIView

options ima span 沒有 ont nop mea 類型 dap UIView與核心動畫區別?(掌握) 1.核心動畫只作用在layer. 2.核心動畫看到的都是假像,它並沒有去修改UIView的真實位置. 什麽時候使用核心動畫?

iOS 基礎-----關於UIView 的 frame bounds

首先,對於frame 大家都很熟悉,是當前view ,相對於其父檢視view 的座標,例如: UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(10, 60, 300, 300)]; view

有關UIViewControllerUIView的初始化建立

UIViewController 分為下面三種情形建立 (依次呼叫的方法 順序如下) 一.StoryBoard:     1.initWithCoder   ;  2.awakeFromNib   ;  3.loadView   ;  4.viewDidLoad  二.Xi

iOS開發筆記-Autolayout自動佈局UIView動畫

使用了Autolaout的檢視的動畫 方法一:簡單的說就是先找到想要變化的NSLayoutConstraint 然後改變constant值 NSLayoutConstraint * _botto

ios新手開發——Label分散對齊UIView高度測量

最近為了實現公司的一個動態排版模式(如圖:),可謂是把IOS動態佈局運用到了極致.尤其是對label的運用.才開始接觸ios開發的時候覺得label並不能像安卓一樣那麼智慧,因為ios中控制元件的位置都是絕對的,在不用任何第三方或者autolayout佈局的情況下很不容易做

ios UITableView設置tableHeaderView時發生約束錯誤 UIView-Encapsulated-Layout-Height UIView-Encapsulated-Layout-Width

priority -1 com cover recover pre -s font 當我 在將UITableView的tableHeaderView設置為我自己創建的View的時候, 當我為這個自定義View添加約束之後啟動調試, 然後符號斷點UIViewA

PLC產品的安裝維護指南,值得

不用 廣泛 間隔 提高 最大的 時間 繼電器 接線端子 每一個 引言  盡管PLC是專門在現場使用的控制裝置,在設計制造時已采取了很多措施,使它對工業環境比較適應,但是為了確保整個系統穩定可靠,還是應當盡量使PLC有良好的工作環境條件,並采取必要的抗幹擾措施。 一、導語  

經驗教訓:值得注意的測試資料

一定要考慮建立處理預設值、空白、空值、零值或者無輸入等條件的等價區間。因為這些值通常在軟體中進行特殊處理,所以不要把它們與合法情況和非合法情況混在一起,而要建立單獨的等價區間。在這種預設情況下,如果使用者輸入0或者-1作為非法值,就可以執行不同的軟體處理過程。 非法、錯誤、不正確和垃圾資料的測試是很

shiro原始碼篇 - shiro的session的查詢、重新整理、過期刪除,你值得擁有

前言   開心一刻       老公酷愛網路遊戲,老婆無奈,只得告誡他:你玩就玩了,但是千萬不可以在遊戲裡找老婆,不然,哼哼。。。    老公嘴角露出了微笑:放心吧親愛的,我絕對不會在遊戲裡找老婆的!因為我有老公!    老婆:......   路漫漫其修遠兮,吾將上下而求索!   

大資料、雲端計算和人工智慧的深度剖析相互關係,值得入行者典藏

雲端計算、大資料和人工智慧,這三個東西現在非常火,並且它們之間好像互相有關係:一般談雲端計算的時候會提到大資料、談人工智慧的時候會提大資料、談人工智慧的時候會提雲端計算……感覺三者之間相輔相成又不可分割。但如果是非技術的人員,就可能比較難理解這三者之間的相互關係,所以有必要解釋一下。

shiro的session的查詢、重新整理、過期刪除,你值得擁有

前言   開心一刻       老公酷愛網路遊戲,老婆無奈,只得告誡他:你玩就玩了,但是千萬不可以在遊戲裡找老婆,不然,哼哼。。。    老公嘴角露出了微笑:放心吧親愛的,我絕對不會在遊戲裡找老婆的!因為我有老公!    老婆:......   路漫漫其修遠兮,吾將上下而求索! 前情回顧  

shiro原始碼篇 - shiro認證授權,你值得擁有

前言   開心一刻      我和兒子有個共同的心願,出國旅遊。昨天兒子考試得了全班第一,我跟媳婦合計著帶他出國見見世面,吃晚飯的時候,一家人開始了討論這個。我:“兒子,你的心願是什麼?”,兒子:“吃漢堡包”,我:“往大了說”,兒子:“變形金剛”,我:“今天你爹說了算,想想咱倆共同的心願”,兒子怯生生的瞅

shiro源碼篇 - shiro認證授權,你值得擁有

erb filters obj ash 三種 isl cit constant 用戶 前言   開心一刻      我和兒子有個共同的心願,出國旅遊。昨天兒子考試得了全班第一,我跟媳婦合計著帶他出國見見世面,吃晚飯的時候,一家人開始了討論這個。我:“兒子,你

ContextApplicationContext

Context與ApplicationContext 1)單例強引用會記憶體洩漏 我們的這個類中的sInstance是一個static且強引用的,在其內部引用了一個Activity作為Context,也就是說,我們的這個Activity只要我們的專案活著,就沒有辦法進行記憶體回收。而我們的Activ

在設定UIView及子檢視的frame屬性的注意事項

UIImageView *icon=[[UIImageView alloc]init]; icon.frame=CGRectMake(CSScreenW/2-59/2, 80, 59, 59);//在沒有給寬度賦值之前不要使用width屬性 icon.image=[

(轉)虛擬內存內存映射文件區別聯系

程序 指令 ref 知識庫 緩沖 網站架構 文件的 計算機 聯系   虛擬內存與內存映射文件是操作系統內存管理的重要部分,二者有相似也有不同的地方,本文是作者學習與應用中得到的一些體會,有錯誤的地方,請提點。 二者的聯系:虛擬內存與內存映射文件都是將一部分內容加載的內存,另

哈希(Hash)加密(Encrypt)的基本原理、區別及工程應用

class 區別 自己 裏的 lpad returns .net 角度 table 0、摘要 今天看到吉日嘎拉的一篇關於管理軟件中信息加密和安全的文章,感覺非常有實際意義。文中作者從實踐經驗出發,討論了信息管理軟件中如何通過哈希和加密進行數據保護。但是從文章評論

【轉】哈希(Hash)加密(Encrypt)的基本原理、區別及工程應用

phy 理論 靈活運用 十分 實際應用 廣泛 tle 多網站 net 0、摘要 今天看到吉日嘎拉的一篇關於管理軟件中信息加密和安全的文章,感覺非常有實際意義。文中作者從實踐經驗出發,討論了信息管理軟件中如何通過哈希和加密進行數據保護。但是從文章評論中也可以