2014-09-22 42 views
0

我的應用程序使用了很多編程定位的CALayers,並且我使用了所有圖像的圖像資產目錄。昨天晚上,我升級到Xcode 6,開始爲iPhone 6準備應用程序。但是,當我登錄模擬器時,即使在iPad Retina設備中,CALayer也沒有正確定位。所以,我想知道,有人知道問題可能來自哪裏嗎?升級到Xcode 6後,CALayer職位已更改

我正在做這種事情來定位圖層的方式。

-(CALayer *)loadLayer:(CGFloat)x :(CGFloat)y :(CGFloat)width :(CGFloat)height :(NSString *)layerName 
{ 

CALayer *layerToAdd = [[CALayer alloc] init]; 
[layerToAdd setBounds:CGRectMake(0, 0, width, height)]; 
[layerToAdd setPosition:CGPointMake(x + width/2, y + height/2)]; 
layerToAdd.name = layerName; 
[self.view.layer addSublayer:layerToAdd]; 
return layerToAdd; 

} 

非常感謝。

+0

你的意思的Xcode 6或iOS 8? – trojanfoe 2014-09-22 11:49:18

+0

我的意思是Xcode 6.我的應用程序似乎在iOS 8上工作正常。所以我認爲這個問題必須與我的項目在Xcode 6中構建的方式一致。在模擬器上,我正在iOS 8上查看它但該應用程序應該支持iOS 7 iOS 6.我也應該說,迄今爲止我只在模擬器上試過它。 – pingin 2014-09-22 12:20:26

回答

0

我想我已經追溯到現在已經切換到更直觀的東西的寬度和高度屬性的問題。我的應用程序僅在橫向模式下運行,並查看我的代碼,似乎在Xcode 6(或更早版本)之前,寬度是縱向模式下設備的物理寬度 - 所以即使它在橫向模式下運行,'寬度'實際上是指身高。所以,我已經能夠通過簡單的這兩行變爲修復大多數與我的應用程序的問題:

viewWidthInPoints = bounds.size.height; 
viewHeightInPoints = bounds.size.width; 

viewWidthInPoints = bounds.size.width; 
viewHeightInPoints = bounds.size.height; 

只是回答在這裏萬一有人運行到類似的問題。

更多細節可以在這裏找到:Is [UIScreen mainScreen].bounds.size becoming orientation-dependent in iOS8?