類似氣泡的動畫隨筆

2022-05-27 08:03:10 字數 1819 閱讀 3642

做ios也有段時間了,也經常從部落格上獲取一些資料**等有用資訊,並且身邊的朋友同學都在寫部落格,感覺是寫個部落格時間逼格很高的事情,所以就申請了乙個,和大家分享一下自己的東西。(ps:由於自己也是個初學者,所有有些不對的地方還請大家指正,讓我更好的提高)。

好了,廢話不多說,這篇博文的重點是介紹一下乙個簡單的動畫效果,點選view,產生乙個氣泡上公升的動畫效果。效果如下,

其實這個效果的實現是很簡單的,我貼一下自己的**,有用的話可以參考一下.

首先,當有手指觸控事件在當前檢視或window窗體中響應時會走下面的方法,並且可以獲取到點選的point值.他的原理就是通過獲取nsset(當前接收者有關的所有的觸控物件)和uitouch(檢視中的所有物件來判斷觸碰點在當前檢視中的位置的(point).**實現如下

-(void)touchesbegan:(nsset *)touches withevent:(uievent *)event

獲取到點選的當前位置後,就可以開始實現動畫效果了.動畫分為兩部分,一是氣泡的產生,使用最普通的動畫,設定一下動畫的間斷時間和氣泡的大小即可.**如下

//

最普通動畫:

[uiview animatewithduration:0.5 animations:^];

第一步完成後氣泡就產生了,接下來需要做的是氣泡運動的動畫,這個過程其實也是很簡單的,但是需要規定乙個動畫結束時的座標值,其中y只要不在螢幕內即可,x可以產生乙個隨機數,這樣的話 就能產生氣泡「亂跑 的效果」.**如下

//

隨機的產生x

int endx = round(random() % 1024

);//

隨機數 產生時間間隔

double speed = 1 / round(random() % 100) + 1.0;//

動畫產生 消失

[uiview beginanimations:nil context:(__bridge void *_nullable)(flakeview)];

[uiview setanimationduration:

5 *speed];

flakeview.frame = cgrectmake(endx, -10.0, 25.0, 25.0

); [uiview setanimationdidstopselector:@selector(onanimationcomplete:finished:context:)];

[uiview setanimationdelegate:self];

[uiview commitanimations];

動畫結束後執行下面方法讓其從view上移除.**如下,

- (void)onanimationcomplete:(nsstring *)animationid finished:(nsnumber *)finished context:(void *)context
但是這裡出現乙個問題就是在這個方法裡如果執行 uiimageview *flakeview = cfbridgingrelease(context);就會出現記憶體問題,希望有看見的大神能幫小弟解決一下疑問.

最初看到這個效果實在新版的人人上,(ps:你是不是有個疑問,怎麼還有人用人人網,哈,其實我也是出於好奇),但是確實沒有想到這麼簡單就實現了.自己是個小菜鳥,但是也很高興和大家分享一些東西的,我寫的這些其實也是很初級的東西,可能僅僅適用於初學者,如果大牛路過的話,留個贊鼓勵一下,呵呵一笑就可以了。

同時也感謝網上的大牛所提供的資料。

div CSS製作類似微信對話氣泡效果的例項總結

在聊天的場景中,聊天內容需要用到氣泡修飾,如下圖。下面一一講解。一 式 第乙個樣式是京東客服,氣泡的圓角和鉤子都是用了。使用了乙個table組合成了乙個圓角的框框。lm樣式拼出了鉤子。xml html code複製內容到剪貼簿 樣式 css code複製內容到剪貼簿 二 背景式 第二種主要是使用了 ...

如何繪製 類似於氣泡帶小尖尖的view

尖尖在矩形上邊 arrowx表示小尖尖 即三角形中垂線的x inte ce noteview uiview instancetype initwithframe cgrect frame witharrowx cgfloat arrowx property nonatomic,strong nsst...

Android 類似支付完成後打鉤動畫

我們在操作完成後為了不讓陳序很死板,新增個動畫是個很好的辦法。下面來說說類似支付完成的動畫 import android.animation.valueanimator import android.content.context import android.graphics.canvas imp...