[英]UIView deforms when it is animated to another position
我在 UIView 上遇到了一個非常愚蠢的問題。 我以編程方式創建 UIView,然后通過使角半徑為視圖高度的一半使其成為一個圓,如下所示:
但是當我嘗試將圓圈動畫到不同的位置時,它會像這樣變形:
這是我用來為視圖設置動畫的代碼,只是一個簡單的 UIView.animateWithDuration:
UIView.animateWithDuration(2, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: {
self.secondDot.frame.origin = CGPoint(x: self.view.frame.size.width - self.secondDot.frame.size.width, y: 0)
self.secondDot.frame.size = self.secondDot.frame.size
}, completion: nil)
我還應該補充一點,圓圈並不總是變形,但經常變形。 請幫助任何建議將不勝感激。
編輯:我應該提到在 UIView.animationWithDuration 發生之前圓圈已經在運動我不知道這是否可能是一個問題
這條線的重點是什么?
self.secondDot.frame.size = self.secondDot.frame.size
你要么
如果情況 1) newSize.width != newSize.height...但這是一個問題,因為您的圓圈在幕后不再是“正方形”。 如果情況 2) 只需刪除線條。
我有完全相同的情況。
經過一番研究,我在頭文件中找到了setFrame
方法的注釋
// 動畫。 如果視圖被轉換,則不要使用框架,因為它不會正確反映視圖的實際位置。 改用邊界 + 中心。
我決定使用setCenter
而不是setFrame
來解決失真問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.