2015-04-24 3 views
0

Я создаю программный код UINavigationBar, который отображается в соответствии с требованиями iOS 7. Однако в iOS 8.x весь текст в UINavigationBar не отображается в границах экрана. Одно из моих предположений заключается в том, что это связано с автоматической компоновкой.Текст заголовка UINavigationBar частично отображается на экране

navbar with streched title text

//ViewControllerRootHomeCenter.m 
_navBar = [[UINavigationBar alloc] init]; 
_navBar.frame = CGRectMake(0,0, self.view.frame.size.width, 64); 

// add hambuger menu 
//...etc etc 

[self.view addSubView:_navbar]; 
+0

Пожалуйста, уменьшите размер вашего тренажера, щелкнув по окну из верхней панели меню, а затем проверьте. – aBilal17

+1

Проверьте рамку просмотра в xib или storybord. Я думаю, что он будет иметь размер по умолчанию (600x600) при создании (в xcode 6 и выше). Установите фактический фрейм или ограничение автоматического макета, чтобы они соответствовали всем устройствам. – VRAwesome

+0

@SweetAngel действительно ширина рамки для XIB/view для этого конкретного vc равна 600 – Chris

ответ

0

Вы можете попытаться получить ширину экрана таким образом тоже:

CGRect frame = (CGRect){0,0,CGRectGetWidth([[UIScreen mainScreen]bounds]),64); 

Возможно, это будет исправить вашу проблему.

0

Прежде всего, убедитесь, что вы не закодировав ширину панели навигации.

UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 

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

+0

Я пробовал ваш вышеописанный код, но я все равно получаю тот же результат. – Chris

+0

Можете ли вы обновить сообщение с помощью кода, используемого для создания панели навигации? – Sudeep

+0

да, я могу это сделать, выше код, который я использую, чтобы создать и добавить панель навигации. – Chris