Как сделать шаблон OpenGL ES с автоматическим поворотом панели инструментов - PullRequest
1 голос
/ 05 февраля 2011

Я пытался выяснить, как сделать это в течение нескольких дней, но успех был ограниченным.Мне удалось вручную обработать NSNotification, которые сообщают мне, когда меняется ориентация вида, затем я использую CGAffineTransformations, чтобы переместить панель инструментов в правильную ориентацию.Этот вид работает, но не очень чистый.Итак, мой вопрос, как я могу добавить панель инструментов в представление OpenGL-ES и сделать ее автоматически?Я полагаю, что это потребует создания нового viewController, затем добавления представления OpenGL и панели инструментов к этому представлению, но у меня недостаточно опыта работы с представлениями и подпредставлениями, чтобы знать правильный способ сделать это или даже если это правильный подход,Я попытался сделать это и потерпел неудачу.

1 Ответ

2 голосов
/ 14 февраля 2011

ОК, я наконец понял это. Это было не очень интуитивно понятно, но это работает. Этот ответ пришел от: http://www.idevgames.com/forums/thread-1773.html

1) добавить новый файл ... Какао Touch Classes-> UIViewController подкласс и назовите его GLViewController 2) в GLViewController.m добавьте #import "PaintingView.h" вверху, а в метод loadView добавьте:

CGRect    rect = [[UIScreen mainScreen] applicationFrame];
self.view = [[PaintingView alloc] initWithFrame:CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)];

и далее, внесите изменения:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOr​ientation {
    return YES;
}

3) в AppController.m добавьте #import "GLViewController.h" вверху, а в applicationDidFinishLaunching добавьте:

GLViewController *viewController = [[GLViewController alloc] init];
UIToolbar *mainTools = [UIToolbar new];
mainTools.frame = CGRectMake(0, 0, 300, 50);
UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Help!" style:UIBarButtonItemStyleBordered target:self action:nil];
[mainTools setItems:[NSArray arrayWithObjects:newButton, nil]];
[[viewController view] addSubview:mainTools];
[window addSubview:[viewController view]];

Вам придется изменить свои GL-преобразования и коснуться координат, чтобы они подходили, но это даст вам возможность автоматического рутирования.

Надеюсь, это полезно кому-то еще, кроме меня.

...