无法对UIImageView应用多重转换

问题描述:

我无法找出为什么我的转换未应用于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)

谢谢!

你原来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);