1

我正在为 iPhone 开发我的第一个游戏并遇到这个问题。坐标系似乎很遥远,很可能我做错了什么。

我有一个 UIViewController,它被设置为 RootViewController。之后 viewController 调用 UIView ;

应用委托;

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyViewController *myViewController = [[MyViewController alloc] init];
[[self window] setRootViewController:myViewController];

视图控制器;

CGRect frame = [[UIScreen mainScreen] bounds];
MyView *v = [[MyView alloc] initWithFrame:frame];
[self setView:v];

看法;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
.
.
.
[myCALayer setBounds:CGRectMake(0.0, 0.0, width, height)];
[myCALayer setPosition:CGPointMake(x, y)];

所以 0.0 应该是左上角,但是在我的开发环境中,它在可见屏幕之外,仍然在左上角,但是当我在 0.0 处绘制图像时,我只能看到它右下角的一小部分.

知道为什么会这样吗?

4

1 回答 1

0

位置

指定接收者在超层坐标系中的位置。动画。

@property CGPoint position

讨论

该位置是相对于锚点的。此属性的值以磅为单位指定。默认值为 (0.0, 0.0)。

有关boundsanchorPointposition属性之间关系的更多信息,请参阅Core Animation Programming Guide中的“Layer Geometry and Transforms”</a> 。

默认锚点设置为 (0.5,0.5),它是图层的中心,因此如果将位置设置为 (0,0),图层的中心将位于 (0,0) - 只有右下角可见,您需要将锚点设置为(0,0),然后将位置设置为(0,0)。

于 2012-09-01T17:57:10.860 回答