我申請的背景圖像我的ViewController:MonoTouch。旋轉背景圖片
ParentViewController.View.BackgroundColor = UIColor.FromPatternImage (image)
現在,當屏幕方向得到改變它breakes我的整個背景的東西,因爲那畫面保持原樣。當然,我可以在Photoshop中旋轉圖像並將其放入我的項目中,但我對軟件工程師的謙遜自豪感起了反感。
我通過了很多來源搜索。我已經嘗試了Objective-C樣本。我在c#中只找到了一些。我沒有時間學習UIKit和Core Graphics之間的差異。我試過CGContext.RotateCTM
,我試圖用CGAffineTransform.MakeRotation
來實現。它不起作用。我只需要做一件簡單的事情。
顯然在使用RotateCTM
或更改CGAffineTransform
之前,您必須以某種方式定義關鍵點。
請有人給我看一個簡單的例子,它是如何工作的。
UPD:
這是我走到這一步:
var image = new UIImage ("Images/background.jpg");
if (interfaceOrientation == UIInterfaceOrientation.LandscapeLeft) {
CGImage imageRef = image.CGImage;
var width = imageRef.Width;
var height = imageRef.Height;
CGImageAlphaInfo alphaInfo = imageRef.AlphaInfo;
CGColorSpace colorSpaceInfo = CGColorSpace.CreateDeviceRGB();
CGBitmapContext bitmap =
new CGBitmapContext (IntPtr.Zero, width, height, imageRef.BitsPerComponent, imageRef.BytesPerRow, colorSpaceInfo, alphaInfo);
bitmap.TranslateCTM(0, imageRef.Height);
bitmap.RotateCTM((float)-1.5707f);
bitmap.DrawImage (new Rectangle (0, 0, height, width), imageRef);
image = UIImage.FromImage (bitmap.ToImage());
bitmap = null;
}
ParentViewController.View.BackgroundColor = UIColor.FromPatternImage (image);
,正如你可以看到它是不是沒有好,儘管它旋轉:
我錯過了什麼?
沒有它不工作。我想當設備改變其方向時,它也應該旋轉圖像90度。它不 – Agzam
你試過了嗎?我已經添加了一些代碼來證明它正在按照我向您解釋的方式工作。 – Krumelur
對不起......顯然我嘗試了錯誤的方式......我的道歉。感謝您提供詳細的示例代碼。 – Agzam