我无法找出为什么我的转换不适用于Xamarin iOS中的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)
谢谢!
答案 0 :(得分:2)
您的原始CGAffineTransform
为空(全部为0
),结构为默认值,不为身份转换,您可以在其上构建内容。 IOW使所有后续调用(math ops)返回空的。
您可以从非空变换开始,例如
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);