簡體   English   中英

UIView 動畫到另一個位置時會變形

[英]UIView deforms when it is animated to another position

我在 UIView 上遇到了一個非常愚蠢的問題。 我以編程方式創建 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. 想在移動時統一調整圓的大小
  2. 或不。

如果情況 1) newSize.width != newSize.height...但這是一個問題,因為您的圓圈在幕后不再是“正方形”。 如果情況 2) 只需刪除線條。

我有完全相同的情況。

經過一番研究,我在頭文件中找到了setFrame方法的注釋

// 動畫。 如果視圖被轉換,則不要使用框架,因為它不會正確反映視圖的實際位置。 改用邊界 + 中心。

我決定使用setCenter而不是setFrame來解決失真問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM