2012-09-01 5 views
1

iPhone 용 게임을 처음 개발하면서이 문제가 발생했습니다. 좌표계가 빠져있는 것 같아요. 내가 틀린 일을하고있는 것 같습니다.iOS 좌표계가 범위를 벗어났습니다.

나는 UIViewController가 있으며 RootViewController로 설정되어 있습니다. viewController는 그 후에 UIView를 호출합니다.

응용 프로그램 대리인;

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

ViewController;

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은 왼쪽 상단을 것으로 생각하지만, 내 dev에 환경에, 그것은 여전히 ​​어딘가에 왼쪽 상단에 보이는 화면의 측면 밖으로이다하지만 0.0에서 이미지를 그릴 때, 나는 단지를 볼 수 있습니다 그것의 오른쪽 하단의 작은 부분.

왜 이런 일이 발생하는지 알고 싶습니다.

+0

너비, 높이, x 및 y는 각각 무엇입니까? 그것들을 어디에서 정의합니까? – rdelmar

+0

너비 : 48, 높이 : 70, x : 2, y : 10.이 값을 뷰 내부에 정의합니다. –

답변

0

위치는

superlayer의 좌표 시스템에서 수신기의 위치를 ​​지정합니다. Animatable.

@property CGPoint position 

토론

anchorPoint 위치는 상대적이다. 이 속성의 값은 점으로 지정됩니다. 기본값은 (0.0, 0.0)입니다.

bounds, anchorPointposition 특성 사이의 관계에 대한 자세한 내용은 Core Animation Programming Guide“Layer Geometry and Transforms”를 참조하십시오.

기본적으로 anchorPoint는 레이어의 중앙에 설정되므로 레이어의 중심을 (0,0)으로 설정하면 레이어의 중심은 (0,0) - 오른쪽 하단에만 설정됩니다. 코너가 표시되면 anchorPoint를 (0,0)으로 설정하고 position을 (0,0)으로 설정해야합니다.

+0

감사합니다! "Layer Geometry and Transforms"링크는 올바른 방향으로 지적하고 CALayer의 anchorPoint가 내 문제를 해결하기위한 정확한 추측이었습니다. 분명히 내 의견에는 문제가 없었습니다. myCALayer.anchorPoint = CGPointMake (0, 0); 문제를 완전히 해결했습니다. –

관련 문제