2012-05-15 3 views
0

У меня есть приложение, которое было изначально разработано несколько лет назад, только для оригинального iPhone. Я взял его, и мы хотим его обновить, чтобы он работал на iPhone 4 и iPad. В нем довольно много кода, поэтому размещение образцов затруднено, потому что они могут быть не в нужном месте (также он использует irrlicht, большая часть кода - C++ с несколькими классами obj-c - appDelegate и т. Д.).Проявлять различия между имитатором iPad и устройством?

Версия для iPhone работает нормально, а в симуляторе xcode версия iPad работает нормально. Однако на самом устройстве iPad версия не отображается правильно.

Приложение является ландшафтом во всех версиях, но на iPad, хотя оно ориентирует все правильно, область рисования, кажется, все еще использует ориентацию на портрете. Вот скриншот (игнорировать зеленый квадрат, я просто спрятан некоторую информацию, которая была там): http://i.imgur.com/50CKA.png

Как вы можете видеть, что правая рука пуста, она, кажется, ограничивает ширину до 768, изображение проходит через верх экрана (я бы подумал, что он обрезается на 1024). Учитывая, что версия iPhone работает нормально, есть ли настройка в IB, которая может потребоваться изменить, что я мог упустить?

Edit1:

UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
     contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 
     self.view = contentView; 
     self.view.autoresizesSubviews = YES; 
+1

До тех пор, пока основным видом является контроллер, вы можете установить autoResizigMask на предмет. – CodaFi

+0

Я до сих пор не использовал autoresizingmask, я отредактировал вопрос с добавленным мной кодом - это похоже на правильную реализацию? – TheBestBigAl

+1

yes autoresizingMask используются правильно, не устранена ли эта проблема? – rishi

ответ

0

Fixed это сам - к сожалению, когда я был первоначально «тестирование», это, я не имел Ipad в руки так, что кто-то тестирование каждую сборку, которая была очень медленно. Раздобыл один и нашел ответ довольно быстро:

UIScreen* mainscr = [UIScreen mainScreen]; 

//original width and height 
w = mainscr.currentMode.size.width; 
h = mainscr.currentMode.size.height; 


//fixed method 
if((int)mainscr.currentMode.size.width % 1024 == 0) 
    { 
     w = mainscr.currentMode.size.width; 
     h = mainscr.currentMode.size.height; 
     //correct for ipad 
    } 
    else 
    { 
     h = mainscr.currentMode.size.width; 
     w = mainscr.currentMode.size.height; 
     //correct for iphone 
    } 

По какой-то причине я должен сказать ему, чтобы перевернуть ориентацию IPADS? Не уверен, почему, но сейчас это работает, спасибо за помощь всем, кто прокомментировал.

Смежные вопросы