2013-04-27 3 views
0

Прошу прощения за мой английский.Как я могу изменить динамическое изображение с iphone 4 на iphone 5 screen

В приложении, которое я пытаюсь разработать в первом представлении, у меня есть набор из 4 изображений, один баннер и одна панель вкладок, которые я хочу полностью покрыть размер экрана. Для 3,5-дюймовых iPhone нет проблем, но проблемы начинаются с 4-дюймового iPhone. На данный момент я использую autolayout, и каждое изображение имеет ограничение на верхний супервизор, но я полагаю, что это не лучшее решение для исправления моей проблемы на самом деле, что вызывает белое свободное пространство между изображениями и панелью вкладок в iphone 4-inch Просмотры.

Чтобы решить эту проблему, на ваш взгляд, это лучшее решение? Можно растянуть изображения и изменить их размер, чтобы полностью покрыть экран? Или лучше иметь два разных набора изображений, которые загружаются в соответствии с размером экрана устройства?

Другая идея, что у меня есть, чтобы использовать изображения с нужного размера для iphone 4 дюйма и когда отображаются в iPhone 3,5 дюйма частично покрыты оболочкой, как в нижней части этого примера:

http://www.manuelragazzini.it/microfoni.jpg

Ниже я отправляю пример моей ситуации и что, что я хотел бы в качестве результата (в 3,5-дюймовом есть также панель навигации, но программно скрыть, так что вид идеально)

http://www.manuelragazzini.it/domanda.jpg

ответ

0

Что я думаю, что это лучше, чем вы предоставляете два отдельных файла-ниба для 3,5-дюймового дисплея. Да, я знаю, что это увеличит ваши усилия, но да, в будущем код будет более управляемым. Вам просто нужно предоставить отдельные наконечники.

Вы можете использовать следующий метод для динамического загрузки гильзы каждый раз для требуемого измерения.

-(void)pushViewController:(UIViewController*)viewController withNib:(NSString*)nibName 
{ 


if(nibName){ 

    nibName=[self getNibNameForNib:nibName]; 

    viewController=[viewController initWithNibName:nibName bundle:nil]; 
    [self.navigationController pushViewController:viewController animated:YES]; 
} 

} 


-(NSString*)getNibNameForNib:(NSString *)nibName 
{ 
NSString *newNibName=nil; 

if([self isIphone5Retina4InchDisplay]){ 
    newNibName=[nibName stringByAppendingString:@"-568h"]; 
} 

if(newNibName && [[NSBundle mainBundle] pathForResource:newNibName ofType:@"nib"] != nil) 
{ 
    //if iphone 5 and nib is also present for that resolution. 
    nibName=newNibName; 
} 

return nibName; 
} 

/** 
Method to get if device is 4 inch iphone 5 retina device or not. 
*/ 
-(BOOL)isIphone5Retina4InchDisplay 
{ 

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) { 
    // code for 4-inch screen 
    return YES; 
} else { 
    // code for 3.5-inch screen 
    return NO; 
    } 
} 

только имя сетчатке 4 дюйма NIB NAME AS LoginViewController-568h.xib т.е. добавить суффикс -568h. Используйте этот метод pushViewController каждый раз, чтобы нажать новый контроллер представления. Вы можете написать этот метод в своем базовом контроллере.

+0

Спасибо за ваш ответ !!!! Я попробую, и я дам вам знать;) –

+0

ok, я использовал два разных набора изображений с разными размерами, и я адаптировал их к экрану без автозапуска –

0

Я бы пошел с двумя наборами изображений для вашего примера микрофона, потому что, если вы хотите иметь это пробел между вкладкой и микрофоном, это путь.

Вы можете реализовать это, проверив модель iPhone в своем коде и, таким образом, загрузив соответствующее изображение.

Если у вас мало дискового пространства (не может быть несколько изображений модели iPhone), тогда метод изменения размера может это сделать.

+0

Извините, но мой английский очень плохой, и, возможно, вы не понимали, что я имел в виду. Я не хочу, чтобы пробел и изображение микрофона показывали пример того, что я намереваюсь, когда напишу, что изображения «.... отображаются в iPhone 3,5 дюйма частично покрыты». –