IPhone 5 TabBar не работает в правильном положении - программирование
Подтвердить что ты не робот

IPhone 5 TabBar не работает в правильном положении

Я обновляю наше приложение, и я добавил новое изображение по умолчанию, но моя панель вкладок не работала на iPhone 5. Я провел некоторое исследование и создал оператор if, проверяющий размер дисплея, а затем разместив панель вкладок в надлежащем месте. Проблема в том, что когда оператор if попадает на размер экрана iPhone 5 и помещает панель вкладок в нужное место, кнопки не работают... Если я изменил вертикальное положение на меньшее значение, тогда кнопки будут работать. Вот код:

UITabBar *tabBar = self.tabBarController.tabBar;

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
        tabBar.frame=CGRectMake(0,431,320,49);
    }
    if(result.height == 568)
    {
        tabBar.frame=CGRectMake(0,519,320,49);
    }
}

Теперь, если я изменил вертикальное выравнивание "519" на "450", панель вкладок выше на экране, но кнопки работают. Любые идеи - это меня заводит! Это последнее, что мне нужно, чтобы заставить меня запустить мое обновление.

4b9b3361

Ответ 1

Если ваше окно создается в более раннем nib, скорее всего, флажок должен быть проверен на атрибутах windows под названием "в полноэкранном режиме при запуске

Подробнее здесь.

Ответ 2

Установите флажок "Полный экран при запуске" в главном окне в Interface Builder.

enter image description here

Если вы хотите сделать это без интерфейса Builder, добавьте

window.frame = [UIScreen mainScreen].bounds;

в начале вашего applicationDidFinishLaunching: или application:didFinishLaunchingWithOptions: в делегате приложения.

Ответ 3

Это происходит из-за проблемы с высотой экрана между iPhone 5 и iPhone 4. Добавьте сниппет в файл AppDelegate. Это решило мою проблему.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

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