iOS之a(chǎn)mateWithDuration時(shí)點(diǎn)擊無(wú)反應(yīng)問(wèn)題

前言:

我負(fù)責(zé)努力苟蹈,其余交給運(yùn)氣...

正文:

今天遇到了一個(gè)詭異的問(wèn)題:產(chǎn)品要求呢糊渊,點(diǎn)擊cell的時(shí)候,要做一個(gè)選中色然后3秒內(nèi)漸變回歸正常的效果慧脱。于是呢渺绒,因?yàn)橛玫降牡胤接悬c(diǎn)多,所以我就在cell中添加touchesBegan菱鸥,這樣:

/**點(diǎn)擊cell變色宗兼,三秒漸隱*/
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event{
    self.backgroundColor=RGB(255,251,230);
    [UIView animateWithDuration:3 animations:^{
        self.backgroundColor = [UIColor clearColor];
    }];
}

結(jié)果萬(wàn)萬(wàn)沒(méi)想到的是:因?yàn)閏ell中有UI控件,然后有點(diǎn)擊事件氮采,結(jié)果動(dòng)畫進(jìn)行時(shí)戈锻,所有的點(diǎn)擊事件都無(wú)效了...第一時(shí)間想到的就是isUserInteractionEnabled滴肿,結(jié)果怎么設(shè)置都不好使敢茁。查了一下isUserInteractionEnabled的文檔才知道智哀,里面有這么一段:

  • During an animation, user interactions are temporarily disabled for all views involved in the animation, regardless of the value in this property. You can disable this behavior by specifying the allowUserInteraction option when configuring the animation.

大意就是:在動(dòng)畫期間,無(wú)論此屬性中的值如何贸呢,都會(huì)臨時(shí)禁用動(dòng)畫中涉及的所有視圖的用戶交互镰烧。但是可以設(shè)置animation的option為allowUserInteraction而禁用此行為。(百度翻譯+半懵半猜...)

然后楞陷,就找到了這個(gè)方法:
[UIView animateWithDuration: delay: options: animations: completion:^(BOOL finished) {}]
查了一下options的選項(xiàng):

  • UIViewAnimationOptionLayoutSubviews //提交動(dòng)畫的時(shí)候布局子控件怔鳖,表示子控件將和父控件一同動(dòng)畫。

  • UIViewAnimationOptionAllowUserInteraction //動(dòng)畫時(shí)允許用戶交流固蛾,比如觸摸

  • UIViewAnimationOptionBeginFromCurrentState //從當(dāng)前狀態(tài)開始動(dòng)畫

  • UIViewAnimationOptionRepeat //動(dòng)畫無(wú)限重復(fù)

  • UIViewAnimationOptionAutoreverse //執(zhí)行動(dòng)畫回路,前提是設(shè)置動(dòng)畫無(wú)限重復(fù)**

  • UIViewAnimationOptionOverrideInheritedDuration //忽略外層動(dòng)畫嵌套的執(zhí)行時(shí)間

  • UIViewAnimationOptionOverrideInheritedCurve //忽略外層動(dòng)畫嵌套的時(shí)間變化曲線

  • UIViewAnimationOptionAllowAnimatedContent //通過(guò)改變屬性和重繪實(shí)現(xiàn)動(dòng)畫效果结执,如果key沒(méi)有提交動(dòng)畫將使用快照

  • UIViewAnimationOptionShowHideTransitionViews //用顯隱的方式替代添加移除圖層的動(dòng)畫效果

  • UIViewAnimationOptionOverrideInheritedOptions //忽略嵌套繼承的選項(xiàng)

//時(shí)間函數(shù)曲線相關(guān)

  • UIViewAnimationOptionCurveEaseInOut //時(shí)間曲線函數(shù)度陆,緩入緩出,中間快

  • UIViewAnimationOptionCurveEaseIn //時(shí)間曲線函數(shù)献幔,由慢到特別快(緩入快出)

  • UIViewAnimationOptionCurveEaseOut //時(shí)間曲線函數(shù)懂傀,由快到慢(快入緩出)

  • UIViewAnimationOptionCurveLinear //時(shí)間曲線函數(shù),勻速

//轉(zhuǎn)場(chǎng)動(dòng)畫相關(guān)的

  • UIViewAnimationOptionTransitionNone //無(wú)轉(zhuǎn)場(chǎng)動(dòng)畫

  • UIViewAnimationOptionTransitionFlipFromLeft //轉(zhuǎn)場(chǎng)從左翻轉(zhuǎn)

  • UIViewAnimationOptionTransitionFlipFromRight //轉(zhuǎn)場(chǎng)從右翻轉(zhuǎn)

  • UIViewAnimationOptionTransitionCurlUp //上卷轉(zhuǎn)場(chǎng)

  • UIViewAnimationOptionTransitionCurlDown //下卷轉(zhuǎn)場(chǎng)

  • UIViewAnimationOptionTransitionCrossDissolve //轉(zhuǎn)場(chǎng)交叉消失

  • UIViewAnimationOptionTransitionFlipFromTop //轉(zhuǎn)場(chǎng)從上翻轉(zhuǎn)

  • UIViewAnimationOptionTransitionFlipFromBottom //轉(zhuǎn)場(chǎng)從下翻轉(zhuǎn)

所以蜡感,解決方案就出來(lái)了:

 /**點(diǎn)擊cell變色蹬蚁,三秒漸隱*/
 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event{ 
     self.backgroundColor=RGB(255,251,230); 
     [UIView animateWithDuration:3 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
         self.backgroundColor = [UIColor clearColor]; 
     }completion:^(BOOLfinished) { 

     }];
 }

補(bǔ)充:

關(guān)于轉(zhuǎn)場(chǎng)動(dòng)畫,它一般是用在下面這個(gè)方法中的:
[UIView transitionFromView: toView: duration: options: completion:^(BOOL finished) {}];
該方法效果是從一個(gè)view to 另一個(gè)view郑兴,期間可以使用一些轉(zhuǎn)場(chǎng)動(dòng)畫效果犀斋。

總結(jié):

bug就像象牙塔,我們卡在那的時(shí)候情连,感覺(jué)無(wú)比的草蛋叽粹。但是解決后,回望一下却舀,原來(lái)如此簡(jiǎn)單...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虫几,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挽拔,更是在濱河造成了極大的恐慌持钉,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篱昔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡始腾,警方通過(guò)查閱死者的電腦和手機(jī)州刽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浪箭,“玉大人穗椅,你說(shuō)我怎么就攤上這事∧唐埽” “怎么了匹表?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)宣鄙。 經(jīng)常有香客問(wèn)我袍镀,道長(zhǎng),這世上最難降的妖魔是什么冻晤? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任苇羡,我火速辦了婚禮,結(jié)果婚禮上鼻弧,老公的妹妹穿的比我還像新娘设江。我一直安慰自己锦茁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布叉存。 她就那樣靜靜地躺著码俩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪歼捏。 梳的紋絲不亂的頭發(fā)上稿存,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音甫菠,去河邊找鬼挠铲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛寂诱,可吹牛的內(nèi)容都是我干的拂苹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼痰洒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瓢棒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起丘喻,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤脯宿,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后泉粉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體连霉,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年嗡靡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跺撼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡讨彼,死狀恐怖歉井,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哈误,我是刑警寧澤哩至,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蜜自,受9級(jí)特大地震影響菩貌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜重荠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一菜谣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦尾膊、人聲如沸媳危。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)待笑。三九已至,卻和暖如春抓谴,著一層夾襖步出監(jiān)牢的瞬間暮蹂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工癌压, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仰泻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓滩届,卻偏偏與公主長(zhǎng)得像集侯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子帜消,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345