2015-05-09 70 views
1

我無法找出爲什麼我的轉換未應用於Xamarin iOS中的UIImageView。無法對UIImageView應用多重轉換

下面的代碼:

CGAffineTransform transform = new CGAffineTransform(); 

transform.Rotate((float)Math.PI/2); 
transform.Scale(0.8f, 0.8f); 

this.imageViewOverlay = new UIImageView 
{ 
    ContentMode = UIViewContentMode.Center, 
    BackgroundColor = UIColor.Clear, 
    Opaque = false, 
    Frame = new CGRect(0,0,this.View.Bounds.Width, this.View.Bounds.Height), 
    Transform = transform 
}; 

我在做它之前曾經是像

Transform = CGAffineTransform.MakeRotation((float)Math.PI/2) 

但不幸的是,當你想使用它的兩倍,第二個是清理改造的方式之前。

我使用

Xamarin.iOS: 版本:8.6.0.41(商務版)

操作系統: 的Mac OS X 10.10.3

的XCode:6.3.1版(6D1002)

謝謝!

回答

2

你原來CGAffineTransform是空的(所有0 0),默認情況下,一個結構,而不是一個恆等變換,在其頂部可以構建一些東西。 IOW,使所有後續調用(數學運算)返回一個空的。

您可以從非空變換開始,例如,

var transform = CGAffineTransform.MakeRotation((float)Math.PI/2); 
transform.Scale(0.8f, 0.8f); 

或者您可以從身份轉換開始,例如,

var transform = CGAffineTransform.MakeIdentity(); 
transform.Rotate ((nfloat) Math.PI/2); 
transform.Scale ((nfloat) 0.8f, (nfloat) 0.8f);