亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

自己實現蘋果安裝app動畫

2019-11-14 18:38:59
字體:
來源:轉載
供稿:網友

最近在學習CALayer相關動畫,然后某一天突然發現蘋果安裝app這動畫就很不錯啊,所以就想自己實現下。
具體效果如圖:
還是不試不知道一試嚇一跳啊,這看上去簡單的動畫沒我想象的那么簡單。
首先這個動畫分兩步:
一是中間的圓像時鐘一樣走一圈;
二是外面的大圓變大到包括整個圖片的大小;
 
首先是第一步:
這時候大圓外部跟小圓內部都是半透明的,小圓走過的部分會變成透明。
一開始我一直想用mask的方式來實現,結果試了老好久還是不行,就扔那兒了。
過了兩天再看它,發現其實自己想復雜了,從表面看的話,
第一部分的動畫是畫一個圓,然后用一個顏色填充它,中間就是畫圓的一部分然后填充,問題是這樣一點點走的動畫好難實現;
所以我就想如果是自己用筆畫的話要怎么辦?
然后發現用筆畫的話,只要用跟半徑一樣寬的線來畫就很easy了,畫多少就是多少,想停哪兒就停哪兒!
然后跟代碼一對照才恍然大悟,CAShapeLayer就有lineWidth這個屬性啊,也這么畫就很簡單了!
(這里需要注意CAShapeLayer計算fillColor的范圍時,是按照線的中心計算的,所以實際在代碼中線寬是半徑2倍)
 
透明的問題也是一樣,根本不用什么mask,畫的時候是覆蓋上去,那畫反過來不就是一點點露出來了嘛?。?!
放到代碼里的話,讓strokeEnd從1變到0就ok了。 (這里需要注意方向的問題,貝塞爾曲線有取反方向的方法,設置path的時候注意)
 
那剩下的問題是:怎么畫一個中間圓透明,圓與邊框之間半透明的圖形出來?
我首先想到的是。。。。做個圖片。。。然后試了試,果然可以!不過第二步的動畫沒法做了。。。
所以還是得用CAShapeLayer自己畫。。。
這里經春哥指點才解決了這個問題,用到了一個比較高端的參數,就是CAShapeLayer的fillRule參數。
有兩個可選值kCAFillRuleEvenOdd 和 kCAFillRuleNonZero
 
大致是:
nonzero字面意思是“非零”。按該規則,要判斷一個點是否在圖形內,從該點作任意方向的一條射線,然后檢測射線與圖形路徑的交點情況。從0開始計數,路徑從左向右穿過射線則計數加1,從右向左穿過射線則計數減1。得出計數結果后,如果結果是0,則認為點在圖形外部,否則認為在內部。下圖演示了nonzero規則:

 

evenodd字面意思是“奇偶”。按該規則,要判斷一個點是否在圖形內,從該點作任意方向的一條射線,然后檢測射線與圖形路徑的交點的數量。如果結果是奇數則認為點在內部,是偶數則認為點在外部。下圖演示了evenodd 規則:
 
 
 
具體就是先畫一個矩形,然后再用 appendPath方法添加一個圓進去作為整個CAShapeLayer的path;(也可以用 moveToPoint方法);
利用fillRule讓它圓內部透明,外部半透明。
 
然后把這個layer add 上去就可以了。
 
剩下的就是一個stokeEnd的動畫,就簡單了。
 
第二步:讓大圓的半徑變大
這個只是個path動畫,這里的大圓是上面第一步中最后那個方法畫出來的,只需要設置path為最終的大小就可以了,也比較簡單
 
還有一些細節見代碼注釋;
具體demo見gitHub:https://github.com/Phelthas/LXMRevealDemo 的LXMAppleReveal分類

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
57pao国产精品一区| 欧美一级在线亚洲天堂| 亚洲成人av中文字幕| 精品国产一区二区三区四区在线观看| 国产一区二区视频在线观看| 在线播放亚洲激情| 国产在线一区二区三区| 精品一区二区三区三区| 色中色综合影院手机版在线观看| 国产乱肥老妇国产一区二| 国产精品日韩欧美| 欧美日韩国产精品专区| 国产精品久久久久久av福利软件| 中文字幕日韩在线观看| 97精品国产91久久久久久| 国产一区二区三区直播精品电影| 国产有码一区二区| 久久亚洲精品成人| 国产精品入口福利| 欧美电影院免费观看| 国产精品av在线| 国产一区二区三区三区在线观看| 国产在线观看精品一区二区三区| 国产精品高清在线观看| 国产啪精品视频网站| 国产精品欧美久久久| 欧美制服第一页| 欧美午夜宅男影院在线观看| 国产免费一区二区三区在线能观看| 亚洲性猛交xxxxwww| 欧美一级电影免费在线观看| 日韩一区二区精品视频| 日韩在线视频观看正片免费网站| 久久精品视频中文字幕| 精品福利在线观看| 欧美精品做受xxx性少妇| 亚洲高清在线观看| 欧美猛交ⅹxxx乱大交视频| 精品国产乱码久久久久久婷婷| 国产精品第二页| 亚洲人成网站777色婷婷| 黄色成人在线免费| 欧美性xxxxxxxxx| 欧美富婆性猛交| 精品国产欧美成人夜夜嗨| 欧美黑人极品猛少妇色xxxxx| 国产午夜精品麻豆| 欧美精品videosex性欧美| 亚洲国产日韩欧美综合久久| 久久久在线观看| 久久久久久久香蕉网| 久久久精品免费| 77777少妇光屁股久久一区| 性色av一区二区三区| 日韩激情视频在线播放| 久久久亚洲欧洲日产国码aⅴ| 91青草视频久久| 亚洲综合中文字幕68页| 欧美专区在线播放| 欧美性猛交xxxxx免费看| 国产成人一区二区三区| 国产一区二区三区在线播放免费观看| 国产精品黄页免费高清在线观看| 91视频免费网站| 久久精品久久久久电影| 亚洲片国产一区一级在线观看| 欧美午夜精品久久久久久浪潮| 国产午夜精品全部视频播放| 日本一区二区在线免费播放| 国内精品模特av私拍在线观看| 国产成人在线视频| 性色av一区二区三区免费| 国产精品免费一区豆花| 蜜臀久久99精品久久久久久宅男| 国产精品偷伦免费视频观看的| 亚洲第一精品夜夜躁人人爽| 久久99视频免费| 亚洲色图欧美制服丝袜另类第一页| 亚洲xxx自由成熟| 国产精品高潮粉嫩av| 中文字幕免费精品一区高清| 精品国产一区二区在线| 亚洲一区二区三区视频播放| 国产日韩在线亚洲字幕中文| 九九九久久久久久| 日韩在线视频播放| 国产精品国产亚洲伊人久久| 成人激情在线播放| 亚洲free性xxxx护士hd| 亚洲xxx自由成熟| 欧美亚洲成人精品| 亚洲在线视频观看| 97国产精品视频人人做人人爱| 国产亚洲欧美日韩美女| 中文字幕少妇一区二区三区| 高清欧美性猛交xxxx| 日韩免费看的电影电视剧大全| 国产亚洲日本欧美韩国| 久久噜噜噜精品国产亚洲综合| 欧美亚洲视频一区二区| 国产日韩中文在线| 91超碰中文字幕久久精品| 欧美孕妇性xx| 亚洲国产精品中文| 久久97久久97精品免视看| 精品一区二区三区四区| 亚洲第一区中文99精品| 欧美性生交大片免费| 日本一区二区三区四区视频| 久久综合色影院| 中文字幕亚洲天堂| 亚洲国产天堂网精品网站| 日韩精品在线第一页| 久久影视免费观看| 国产成人福利网站| 国产精品入口福利| 91免费看片在线| 激情懂色av一区av二区av| 亚洲国产天堂久久国产91| 国产欧美亚洲视频| 91在线免费看网站| 亚洲国产精品中文| 亚洲欧美在线磁力| 欧美巨乳在线观看| 亚洲va男人天堂| 91免费在线视频网站| 亲子乱一区二区三区电影| 午夜伦理精品一区| 日韩精品久久久久久久玫瑰园| 亚洲国产精品小视频| 成人免费xxxxx在线观看| 亚洲www在线观看| 国产伊人精品在线| 欧美日韩美女视频| 2020久久国产精品| 美女久久久久久久久久久| 国产精品日日做人人爱| 亚洲国产另类 国产精品国产免费| 欧美日韩性生活视频| 中文字幕日韩欧美在线| 久久精品电影网站| 一区二区三区无码高清视频| 亚洲电影免费观看| 羞羞色国产精品| 91精品国产91久久久久久不卡| 粉嫩av一区二区三区免费野| 91av在线免费观看视频| 亚洲aa中文字幕| 国产成人精品视频在线观看| 另类美女黄大片| 亚洲的天堂在线中文字幕| 欧美视频在线免费| 亚洲国产小视频在线观看| 91精品久久久久久久久久入口| 亚洲影视中文字幕| 国产精品ⅴa在线观看h| 欧美激情精品久久久久久蜜臀| 日韩在线精品一区| 日韩在线免费高清视频| 欧美日韩国产成人高清视频| 欧美日韩在线第一页| 国产精品一二三视频| 亚洲已满18点击进入在线看片| 欧美日韩精品国产|