iPad Landscape начал дотрагиваться - PullRequest
3 голосов
/ 13 февраля 2012

Мое приложение разрешено только в альбомной ориентации, и оно запускается в альбомной ориентации. Таким образом, верхний левый угол, когда iPad в альбомной ориентации, равен (0,0), поэтому все работает нормально.

Тем не менее, когда я беру "touchesBegan" ... он не работает должным образом. Только когда я нажимаю на правые две трети iPad, он улавливает прикосновения. Я знаю, что это как-то связано с ориентацией, потому что приложение буквально пустой экран с одним UIView и ничем иным. Это довольно просто. Нет других возможных проблем, которые могли бы вызвать это.

Если быть точным, если я распечатаю местоположение x в функции touchesBegan, и если iPad удерживается с кнопкой «Домой» слева, ширина составляет 1024. И 1024-768 - 256. Это точно положение, где он начинает чувствовать мои прикосновения. Все, что находится слева от x = 256, не воспринимает прикосновения.

Как мне это исправить?

Ответы [ 3 ]

2 голосов
/ 13 февраля 2012

Проверьте распорки и пружины и убедитесь, что все, что должно касаться касаний, охватывает всю область и заблокировано с 4 сторон.

enter image description here

0 голосов
/ 13 февраля 2012

Ответ таков: при определении UIWindow его необходимо определить как

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

и не строгие координаты.

0 голосов
/ 13 февраля 2012

Чтобы сделать это программно,

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
[self.view setFrame:CGRectMake(0.0f, 0.0f, appFrame.size.width, appFrame.size.height)];
return YES; 
// if you want to support only LANDSCAPE mode, use the line below
/*
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight);
*/
}

Это устанавливает вид на весь экран.

...