2010-11-25 4 views
0

저는 풍경 아이폰 앱에서 일하고 있습니다. 그것은 아이폰에서 잘 실행되지만 iPad 또는 iPad 시뮬레이터에서 실행할 때 x 방향으로 320을 초과하는 터치를 처리하는 데 문제가 있습니다.iPad 풍경이 화면의 왼쪽 부분에 닿는 것을 감지하지 못합니다.

많은 UIButtons가 320 이상으로 표시되면 강조 표시되지만 동작하지는 않습니다.

나는 나의 superviews이를 추가 할 때 :

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ 
UITouch *touch = [touches anyObject]; 

CGPoint touchLocation = [touch locationInView:self]; 
NSLog(@"bounds: %1.2f %1.2f touch: %1.2f %1.2f",self.bounds.size.width,self.bounds.size.height,touchLocation.x,touchLocation.y);  
} 

가 화면의 일부가 320보다 큰 누르면 (320)보다 큰 것이다 결코 출력 x 값이 X 320의 출력을 제공합니다.

UIView는 프로그래밍 방식으로 UIViewController없이 완료됩니다. 나는 풍경을 시작하는 PLIST를 설정하고 아래 applicationDidFinishLaunching 내가이와 전망 회전 : 어떤 도움에 감사드립니다

window.transform = CGAffineTransformMakeRotation((M_PI/2.0)); 
window.bounds = CGRectMake(0, 0, 480, 320); 
window.center = CGPointMake(160.0f, 240.0f); 
[window makeKeyAndVisible]; 

합니다.

+0

당신이로이 구축 320 픽셀의 폭을 가지고 있는지 확인 ...이 당신의 프레임 hierachy에서 프레임을 인쇄합니다

UIView *parent = self ; while (parent = [parent superview]) NSLog("parent: %@",NSStringFromCGRect(parent.frame)); 

:

당신은 같은 코드를 디버깅 할 수 유니버설 앱? " iPad 용으로 제작할 때 먼저 .nib 파일의 iPad 버전을 만드는 단계를 수행 했습니까? –

+0

아니요, iPhone 전용 앱으로 제작하고 있습니다. – Jamvert

+0

'window.bounds = CGRectMake (0, 0, 480, 320);'이 앱의 경계를 480과 320으로 설정합니다. 그래서이 문제를 넘어서서는 안됩니다. – visakh7

답변

1

나는 비슷한 문제가 있지만 프로그래밍 방식으로 Window, View 및 ViewController를 만듭니다 (OpenGL ES를 사용하는 게임이기 때문에).

문제는 원래보기와 동일한 rect로 창을 만들었습니다.

// Always create the window in Portrait mode 
mpWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 

을하고 (보기를 생성)에의 ViewController는 : 그냥 이런 식으로 창을 해결하기

mpController = [[OViewController alloc] initWithFrame: CGRectMake(mPosX, mPosY, mWidth, mHeight)]; 
// After this line the view will rotate to landscape 
[mpWindow addSubview:mpController.view]; 

희망이 도움이!

0

부모보기 중 하나 또는 창에 올바른 프레임이 없습니다.

터치는 창에서부터보기까지 평가되므로 터치가 부모 중 하나의 외부에있는 경우 중지됩니다. 하나는 "

관련 문제