2011-03-15 17 views
4

我一直在使用CGAffineTransformMakeScale來縮放UIView。這通過它的默認anchorPoint(以.5,.5)爲中心進行縮放。我想調整它的大小,使它向左延伸,就好像它向左放大一樣。我可以通過將anchorPoint設置爲正確的中心來​​完成此操作。但是,這會導致設置框架等問題。有沒有更好的方法來應用像我想要的縮放變換。我以爲我可以用自定義的變換矩陣來做,但是我對矩陣數學不太好。從中心點以外的點擴展UIView,尋找替代品anchorPoint

回答

3

使用anchorPoint,以解決幀怪異存儲和重新加載它在this answer

0

首先運行此代碼,您將會有更好的理解。這裏lblLabel是我的標籤,你可以相應地改變。同時檢查CGPoint(x:10,y:98)和CGPoint(x:10,y:108)作爲par>您的要求。 這將從標籤的左上角生成動畫。根據您的要求更改錨點和位置。



self.lblLabel.layer.anchorPoint = CGPoint(x: 0.0,y :0.0) 
     self.lblLabel.layer.position = CGPoint(x: 10, y: 98) 
     lblLabel.transform = CGAffineTransform(scaleX: 0.5, y: 0.5) 

     UIView.animate(withDuration: 1.0) { 
      self.lblLabel.layer.position = CGPoint(x: 10, y: 108) 
      self.lblLabel.transform = CGAffineTransform(scaleX: 1.2, y: 1.2) 
     }