0

我的应用程序使用了许多以编程方式定位的 CALayers,并且我对所有图像都使用图像资产目录。昨晚,我升级到 Xcode 6 开始为 iPhone 6 准备应用程序。但是,当我检查模拟器时,即使在 iPad Retina 设备中,似乎也没有正确定位 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;

}

非常感谢。

4

1 回答 1

0

我想我已经将问题追溯到现在已经切换到更直观的宽度和高度属性。我的应用程序仅在横向模式下运行并查看我的代码,似乎在 Xcode 6(或更早版本?)之前,宽度是纵向模式下设备的物理宽度 - 所以即使它在横向模式下运行,“宽度”实际上指的是高度。所以我已经能够通过简单地更改这两行来解决我的应用程序的大部分问题:

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

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

只是在这里回答,以防有人遇到类似的问题。

更多细节可以在这里找到:[UIScreen mainScreen].bounds.size 在 iOS8 中变得与方向相关吗?

于 2014-09-22T21:45:02.617 回答