// 先直接貼代碼,遲點(diǎn)整理下233333
// 給動(dòng)畫(huà)的
// 給動(dòng)畫(huà)的
// 給動(dòng)畫(huà)的
@IBOutlet weak var threeBtnView: UIView!
@IBOutlet weak var searchView: UIView!
@IBOutlet weak var grayView: UIView!
@IBOutlet weak var forMapView: UIView!
var zoomedInSearchView:Bool = true
var searchViewOriginalHeight:CGFloat!
var grayViewOriginalHeight:CGFloat!
@IBOutlet weak var searchHeightCon: NSLayoutConstraint!
@IBOutlet weak var grayViewHeightCon: NSLayoutConstraint!
@IBAction func zoomSearchView(_ sender: Any){
searchView.clipsToBounds = true
if zoomedInSearchView {
UIView.animate(withDuration: 0.3, delay: 0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.searchHeightCon.constant = self.searchHeightCon.constant * 0.5
self.searchView.bounds = CGRect(x: 0, y: self.searchViewOriginalHeight*0.5, width: self.searchView.bounds.width, height: self.searchView.bounds.height)
// self.searchView.frame = CGRect(x: 0, y: self.searchView.frame.minY, width: self.searchView.bounds.width, height: self.searchViewOriginalHeight*0.5)
// self.grayView.frame = CGRect(x: self.grayView.frame.minX, y: self.grayView.frame.minY, width: self.grayView.frame.width, height: self.grayViewOriginalHeight)
self.view.layoutIfNeeded()
self._mapView.frame = CGRect(x: 0, y: 0, width: self.forMapView.frame.width, height: self.forMapView.frame.height)
self.view.layoutIfNeeded()
}, completion: nil)
zoomedInSearchView = false
}
else{
UIView.animate(withDuration: 0.3, delay: 0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.searchHeightCon.constant = self.searchHeightCon.constant*2
self.searchView.bounds = CGRect(x: 0, y: 0, width: self.searchView.bounds.width, height: self.searchView.bounds.height)
// self.grayView.frame = CGRect(x: self.grayView.frame.minX, y: self.grayView.frame.minY, width: self.grayView.frame.width, height: self.grayViewOriginalHeight)
// self._mapView.frame = CGRect(x: 0, y: self.grayView.frame.maxY+10, width: self.view.frame.width, height: self.view.frame.height - (self.grayView.frame.maxY+10) - 49 - 10)
self.view.layoutIfNeeded()
self._mapView.frame = CGRect(x: 0, y: 0, width: self.forMapView.frame.width, height: self.forMapView.frame.height)
self.view.layoutIfNeeded()
}, completion: nil)
zoomedInSearchView = true
}
}
var grayViewZoomed:Bool = true
@IBAction func grayViewZoom(_ sender: Any) {
grayView.clipsToBounds = true
if grayViewZoomed {
UIView.animate(withDuration: 0.3, delay: 0, options: UIViewAnimationOptions.curveEaseOut, animations: {
self.grayViewHeightCon.constant = self.grayViewHeightCon.constant * 0.3
self.grayView.bounds = CGRect(x: 0, y: self.grayViewOriginalHeight*(1-0.3), width: self.grayView.bounds.width , height: self.grayViewOriginalHeight)
// self.grayView.frame = CGRect(x: self.grayView.frame.minX, y: self.grayView.frame.minY, width: self.grayView.frame.width, height: self.grayView.frame.height*0.3)
// self._mapView.frame = CGRect(x: 0, y: self.grayView.frame.maxY+10, width: self.view.frame.width, height: self.view.frame.height - (self.grayView.frame.maxY+10) - 49 - 10)
self.view.layoutIfNeeded()
self._mapView.frame = CGRect(x: 0, y: 0, width: self.forMapView.frame.width, height: self.forMapView.frame.height)
self.view.layoutIfNeeded()
}, completion: nil)
grayViewZoomed = false
}
else{
UIView.animate(withDuration: 0.3, delay: 0, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.grayViewHeightCon.constant = self.grayViewHeightCon.constant * (1.000/0.3)
// self.grayView.frame = CGRect(x: self.grayView.frame.minX, y: self.grayView.frame.minY, width: self.grayView.frame.width, height: self.grayViewOriginalHeight)
self.grayView.bounds = CGRect(x: 0, y: 0, width: self.grayView.bounds.width, height: self.grayViewOriginalHeight)
// self.grayView.frame = CGRect(x: self.grayView.frame.minX, y: self.grayView.frame.minY, width: self.grayView.frame.width, height: self.grayViewOriginalHeight)
// self._mapView.frame = CGRect(x: 0, y: self.grayView.frame.maxY+10, width: self.view.frame.width, height: self.view.frame.height - (self.grayView.frame.maxY+10) - 49 - 10)
self.view.layoutIfNeeded()
self._mapView.frame = CGRect(x: 0, y: 0, width: self.forMapView.frame.width, height: self.forMapView.frame.height)
self.view.layoutIfNeeded()
}, completion: nil)
grayViewZoomed = true
}
}
// 給動(dòng)畫(huà)的
// 給動(dòng)畫(huà)的
// 給動(dòng)畫(huà)的
Swift簡(jiǎn)單View縮放動(dòng)畫(huà)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 項(xiàng)目中要求子菜單的彈出動(dòng)畫(huà)為圍繞點(diǎn)擊的靠近點(diǎn)展開(kāi)放大,而不是從中心展開(kāi),下面是動(dòng)畫(huà)效果: 在iOS中,anchor...
- 參考:第五篇:CABasic Animation。iOS動(dòng)畫(huà)系列之五:基礎(chǔ)動(dòng)畫(huà)之縮放篇&旋轉(zhuǎn)篇 原理和上一篇是相同...
- 這一篇主要介紹基礎(chǔ)動(dòng)畫(huà)之縮放和旋轉(zhuǎn)。這些基本操作分享完之后,我想想可以找個(gè)稍微復(fù)雜一點(diǎn)點(diǎn)的動(dòng)畫(huà)做做啦。 這篇繼續(xù)基...
- 應(yīng)用場(chǎng)景:自定義TabBar,設(shè)置button的點(diǎn)擊動(dòng)畫(huà)
- 用動(dòng)畫(huà)集合AnimationSet實(shí)現(xiàn)一個(gè)平移且縮放的動(dòng)畫(huà),代碼如下 運(yùn)行后平移的位置沒(méi)有到達(dá)想要的位置原來(lái)動(dòng)畫(huà)集...