我在CGAffineTransform縮放和平移的問題上掙扎,當我在已經有轉換的視圖上的動畫塊中設置轉換時,視圖在動畫之前跳轉了一下。CGAffineTransform縮放和平移 - 在動畫之前跳轉
實施例:
// somewhere in view did load or during initialization
var view = UIView()
view.frame = CGRectMake(0,0,100,100)
var scale = CGAffineTransformMakeScale(0.8,0.8)
var translation = CGAffineTransformMakeTranslation(100,100)
var concat = CGAffineTransformConcat(translation, scale)
view.transform = transform
// called sometime later
func buttonPressed() {
var secondScale = CGAffineTransformMakeScale(0.6,0.6)
var secondTranslation = CGAffineTransformMakeTranslation(150,300)
var secondConcat = CGAffineTransformConcat(secondTranslation, secondScale)
UIView.animateWithDuration(0.5, animations: {() -> Void in
view.transform = secondConcat
})
}
現在,當buttonPressed()被調用視圖跳轉到頂部左約10個像素開始進行動畫之前。我只是目睹了一個concat轉換的問題,只使用了一個轉換轉換工作正常。
編輯:既然我已經做了很多的研究關於此事,我認爲我應該指出,這個問題無論自動佈局是否被開啓
如果您使用'CGAffineTransformTranslate(secondScale,150,300)',該怎麼辦? –
結果完全一樣 – matteok
「有點跳躍」是什麼意思?它是否會返回到身份轉換?它是從跳躍動畫到'secondConcat'還是跳轉,返回到concat,_then_動畫到'secondConcat'? –