Swift5.0 -UIView 動畫

Swift-UIView動畫

UIView動畫可以設(shè)置的動畫屬性有:

1、大小變化(frame)

2、拉伸變化(bounds)

3、中心位置(center)

4、旋轉(zhuǎn)(transform)

5、透明度(alpha)

6、背景顏色(backgroundColor)

7、拉伸內(nèi)容(contentStretch)

其中通過transform也可以實(shí)現(xiàn)不同的動畫效果,例如:平移、縮放、旋轉(zhuǎn)、翻轉(zhuǎn)

簡單動畫

//最簡單的動畫UIView.animate(withDuration:2){self.view.backgroundColor=UIColor.yellowself.textView.alpha=0self.textView.center.y+=200}

transform

與transform結(jié)合使用,實(shí)現(xiàn)不同的效果

UIView.animate(withDuration:2){self.textView.backgroundColor=UIColor.yellowself.textView.transform=CGAffineTransform.identity.translatedBy(x:-100,y:0)//平移.rotated(by:CGFloat(Double.pi/4))//旋轉(zhuǎn).scaledBy(x:0.5,y:0.5)//縮放}

options

UIView 動畫比較完整的版本并不是上面那么簡短,還有很多其他的參數(shù)可以配置。

UIView.animate(withDuration:,delay:<#T##TimeInterval#>,options:<#T##UIView.AnimationOptions#>,animations:<#T##()-> Void#>,completion:<#T##((Bool)-> Void)?##((Bool)-> Void)?##(Bool)-> Void#>)

參數(shù):

withDuration:動畫的持續(xù)時間

delay:動畫開始之前的延時,默認(rèn)是無延時。

options:一個附加選項(xiàng),UIViewAnimationOptions 可以指定多個

animations:執(zhí)行動畫的閉包

completion:動畫完成后執(zhí)行的閉包,可以為nil,可以在這里鏈接下一個動畫。

主要的options (UIViewAnimationOptions) :

動畫執(zhí)行對應(yīng)的曲線(緩沖)

.curveEaseIn : 在動畫開始時加速

.curveEaseOut : 在動畫結(jié)束時減速

.curveEaseInOut : 相當(dāng)于[.curveEaseIn, .curveEaseOut]的組合,在開始加速和在結(jié)束動畫時減速

.curveLinear :讓動畫保持勻速

動畫重復(fù)(Repeating)

.autoreverse:往返動畫,從開始執(zhí)行到結(jié)束后,又從結(jié)束返回開始

.repeat: 讓動畫一直重復(fù)執(zhí)行

彈性動畫(Spring animations)

UIView.animate(withDuration:<#T##TimeInterval#>,delay:<#T##TimeInterval#>,usingSpringWithDamping:<#T##CGFloat#>,initialSpringVelocity:<#T##CGFloat#>,options:<#T##UIView.AnimationOptions#>,animations:<#T##()-> Void#>,completion:<#T##((Bool)-> Void)?##((Bool)-> Void)?##(Bool)-> Void#>)

usingSpringWithDamping: 設(shè)置彈性動畫的阻尼(范圍:0.0~1.0),越接近0.0彈性越大,反之則越小。

initialSpringVelocity: 表示一個初始速度,動畫執(zhí)行快慢由他和duration共同決定。這個需要根據(jù)實(shí)際情況多調(diào)試。

Transitions 過渡動畫

過度動畫強(qiáng)調(diào)的是view改變內(nèi)容。一般有兩個方法:

UIView.transition(from:<#T##UIView#>,to:<#T##UIView#>,duration:<#T##TimeInterval#>,options:<#T##UIView.AnimationOptions#>,completion:<#T##((Bool)-> Void)?##((Bool)-> Void)?##(Bool)-> Void#>)UIView.transition(with:<#T##UIView#>,duration:<#T##TimeInterval#>,options:<#T##UIView.AnimationOptions#>,animations:<#T##(()-> Void)?##(()-> Void)?##()-> Void#>,completion:<#T##((Bool)-> Void)?##((Bool)-> Void)?##(Bool)-> Void#>)

options類型:

.transitionFlipFromLeft: // 從左邊翻轉(zhuǎn)

.transitionFlipFromRight: // 從右邊翻轉(zhuǎn)

.transitionFlipFromTop: // 從底部翻轉(zhuǎn)

.transitionFlipFromBottom: // 從底部翻轉(zhuǎn)

.transitionCurlUp: // 卷上去

.transitionCurlDown: // 卷下來

.transitionCrossDissolve: // 交叉溶解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容