版本記錄
版本號 | 時(shí)間 |
---|---|
V1.0 | 2018.08.08 |
前言
做了好幾個(gè)APP潮罪,碰到了大大小小的很多坑,以前碰到坑逗宁,解決了就結(jié)束了映九,這里想把自己碰到的坑記錄下來,一來給自己備查二來希望可以幫助到大家瞎颗。感興趣的可以關(guān)注下件甥,也歡迎大家補(bǔ)充留言,感興趣的看上面幾篇文章哼拔。
1. 我的代碼我的坑(一) —— 自簽名證書導(dǎo)致請求取消的問題(一)
問題描述
在做loading或者其他序列幀動畫的時(shí)候引有,我們可以采用的一個(gè)方案就是在控件UIImageView上直接進(jìn)行動畫。
有一個(gè)場景就是如果該UIImageView向上傳遞的響應(yīng)鏈中如果有tableview或者collectionview等控件倦逐,那么當(dāng)我們UIImageView在進(jìn)行動畫的時(shí)候譬正,如果點(diǎn)擊界面,那么UIImageView的動畫就會立即停止圖片也會消失檬姥,具體如下圖所示曾我。
這里根視圖是一個(gè)collectionview,當(dāng)我點(diǎn)擊這個(gè)界面的時(shí)候UIImageView動畫停止并且消失了健民,這是為什么抒巢?下面會給出解決方法。
問題解決
原因
首先說一下原因吧秉犹。
這個(gè)是因?yàn)槲覀兿蛏系捻憫?yīng)鏈中有tableview或者collectionview等控件蛉谜,當(dāng)我們點(diǎn)擊界面的時(shí)候,它們就會響應(yīng)自己的highlight狀態(tài)崇堵,而一般我們利用UIImageView做動畫的時(shí)候型诚,只是給賦值一個(gè)序列幀數(shù)組,不會設(shè)置什么hightlight狀態(tài)筑辨,所以在hightlight狀態(tài)的時(shí)候,UIImageView的動畫圖片會立即消失幸逆,本身如果不設(shè)置hightlight對應(yīng)的圖片的話也會直接隱藏掉棍辕,所以暮现,給大家的直觀感覺就是:當(dāng)我點(diǎn)擊界面的時(shí)候動畫和控件全部消失了。
解決辦法
這里有兩個(gè)方法可以解決這個(gè)問題:
- 給UIImageView設(shè)置highLight圖片數(shù)組楚昭,在點(diǎn)擊界面的時(shí)候栖袋,重新調(diào)用
startAnimating
的方法。
- 重寫UICollectionview的一個(gè)代理方法抚太,并返回NO塘幅,其實(shí)這個(gè)方法就是取消了cell的highLight點(diǎn)擊狀態(tài)。
- (BOOL)collectionView:(UICollectionView *)collectionView shouldHighlightItemAtIndexPath:(NSIndexPath *)indexPath
{
return NO;
}
大家如果細(xì)心的看API會發(fā)現(xiàn)尿贫,里面已經(jīng)給了這個(gè)點(diǎn)擊的過程电媳,這些代理方法的調(diào)用順序。
// Methods for notification of selection/deselection and highlight/unhighlight events.
// The sequence of calls leading to selection from a user touch is:
//
// (when the touch begins)
// 1. -collectionView:shouldHighlightItemAtIndexPath:
// 2. -collectionView:didHighlightItemAtIndexPath:
//
// (when the touch lifts)
// 3. -collectionView:shouldSelectItemAtIndexPath: or -collectionView:shouldDeselectItemAtIndexPath:
// 4. -collectionView:didSelectItemAtIndexPath: or -collectionView:didDeselectItemAtIndexPath:
// 5. -collectionView:didUnhighlightItemAtIndexPath:
下面看一下修改后的結(jié)果庆亡,無論怎么點(diǎn)擊根視圖是一個(gè)collectionview的這個(gè)界面匾乓,UIImageView動畫都不會消失了,如下所示又谋。
后記
本篇主要講述了UIImageView動畫點(diǎn)擊后動畫和圖片消失的問題拼缝,感興趣的給個(gè)贊或者關(guān)注~~~~