這是一段時間,因爲我在摩托車事故後住院了3個月。 所以我剛剛更新我的蘋果程序訂閱:-)旋轉xcode中的子圖層
我還有另一個問題,我一直在腦海裏一段時間。 在我的iPad應用程序,我畫一個三角形在iPad上的這樣的中心:
- (void)initTriangle
{
CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;
// draw triangle (TRIANGLE)
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path,NULL, 0.5*screenWidth, 0.5*screenHeight-25);
CGPathAddLineToPoint(path, NULL, 0.5*screenWidth-25, 0.5*screenHeight+25);
CGPathAddLineToPoint(path, NULL, 0.5*screenWidth+25, 0.5*screenHeight+25);
CGPathAddLineToPoint(path, NULL, 0.5*screenWidth, 0.5*screenHeight-25);
CAShapeLayer *triangle = [CAShapeLayer layer];
[triangle setPath:path];
[triangle setFillColor:[[UIColor blackColor] CGColor]];
[[[self view] layer] addSublayer:triangle];
CGPathRelease(path);
}
我呼籲這個從我viewDidLoad中是這樣的:
[self initTriangle];
現在,我想這個旋轉我的iPad圍繞Z軸旋轉,同時平放在桌面上。我有一個函數給我的浮動偏航讀數,我打電話給我的 - (無效)updateTriangleWithYaw :(浮動)偏航 方法,但我不知道該怎麼準確放在那裏使其旋轉。
這裏是我的方法看起來像至今:
-(void)updateTriangleWithYaw:(float)yaw
{
CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;
NSLog(@"YAW: %f", yaw);
Z += 2 * yaw;
Z *= 0.8;
CGFloat newR = R + 10 * yaw;
self.triangle.frame = CGRectMake(0.5*screenWidth, 0.5*screenHeight, newR, newR);
}
任何幫助將不勝感激!
謝謝你,並且是安全的傢伙!
嘿亞倫,謝謝你的回覆!我不知道如何應用所提供的代碼片段。我將它複製到我的方法updateTriangleWithYaw中,但它似乎對我的三角形沒有任何影響: - /任何想法? – Studiologe
根本沒有效果,是吧?你確定self.triangle被分配了嗎?我看到你在initTriangle中創建了一個三角形圖層,但我沒有看到你將它分配給self.triangle。 (同樣,我發現你的三角形是一個圖層,而不是一個視圖,所以我需要稍微修改我的答案,但它基本上是一樣的想法。) –
拋出一個錯誤://分配給'CGAffineTransform'(又名'struct CGAffinrTransform')來自不兼容類型'CATransform3D'(又名'struct CAtransform3D') – Studiologe