无法对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);