我有自定義類從UIScrollView的,其中包含「關閉按鈕」視圖繼承。通過按下「關閉按鈕」,我想進行動畫規模轉換,然後從SuperView中刪除整個視圖。迅速UIView.animate跳過動畫
class AddReview : UIScrollView {
override init(frame: CGRect){
super.init(frame: frame)
let closeButton = CloseButtonView()
closeButton.frame = CGRect(x:frame.maxX - 50, y:0, width: 50, height: 50)
self.addSubview(closeButton)
let tapCloseGestureRecognizer = UITapGestureRecognizer(target:self, action:#selector(closeButtonPressed))
closeButton.isUserInteractionEnabled = true
closeButton.addGestureRecognizer(tapCloseGestureRecognizer)
}
func closeButtonPressed(){
UIView.animate(withDuration: 0.3){
self.transform = CGAffineTransform(scaleX: 1.1, y: 1.1)
}
UIView.animate(withDuration: 0.2, delay: 0.4, animations: {() -> Void in
self.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
}, completion: { (finished: Bool) -> Void in
if (finished)
{
//self.removeFromSuperview()
}
})
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
我在這裏的問題是,沒有動畫發生。立即刪除一個視圖,或者當removeFromSuperview
被註釋掉時,它的大小調整爲10%,而沒有動畫。
我試着使用layoutIfNeeded
,主隊列派遣,和很多其他的東西,但理智最多是工作。
更重要的是,我有時發現它的工作,但大多數時候它不工作!
任何想法,這可能是一個問題嗎? 非常感謝您的任何意見:)
第二'UIView.animate'不等待,直到第一個已完成。第二個在第一個完成之前開始,所以我猜測,第二個覆蓋第一個並刪除了視圖。如果你想讓它們依次運行,你需要鏈接它們。 – Magnas