it-swarm.com.ru

Установить изображение панели навигации в iOS 7

Я хочу преобразовать свой текущий проект из iOS 6 в iOS 7. В iOS 6 мой проект работает нормально, но в iOS 7 изображение панели навигации не отображается должным образом.

Я использовал этот фрагмент кода для iOS 6,

UIImage *imgNav = [UIImage imageNamed:@"navigation.png"];
self.navigationController.navigationBar.frame = CGRectMake(0, 0, 320, 44);
[self.navigationController.navigationBar setBackgroundImage:imgNav forBarMetrics:
     UIBarMetricsDefault];

Как настроить изображение панели навигации в iOS 7?

14
Mayuri R Talaviya

Попробуйте добавить приведенный ниже код в AppDelegate

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigation.png"] 
                                   forBarMetrics:UIBarMetricsDefault];

Это версия Swift:

UINavigationBar.appearance().setBackgroundImage(UIImage.init(named: "navigation.png"), forBarMetrics: UIBarMetrics.Default)

Версия Swift 3:

UINavigationBar.appearance().setBackgroundImage(UIImage.init(named: "logo-dark.png"), for: UIBarMetrics.default)
30
iCoder

Для iOS 7:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];
15
Preet

Используйте этот простой синтаксис для изменения Navigation Background Easy Way.

self.navigationController.navigationBar.barTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"YourImage.png"]];
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};
5
Super Developers
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] )
{

    UIImage *image = [UIImage imageNamed:@"navigation.png"];
    [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}
4
Pradeep

Путь Раскадровки:

  1. Перетащите вид изображения на нижнюю панель сцены раскадровки.
  2. Удерживая клавишу Control, перетащите элемент навигации слева в списке сцен на вновь созданный вид изображения.
  3. Нажмите на представление изображения и установите изображение в атрибуте.
3
Will

[[UINavigationBar Внешний вид] setBackgroundImage: [UIImage imageNamed: @ "navigation.png"] forBarMetrics: UIBarMetricsDefault];

Это работает, если вы следуете правилам, упомянутым в руководстве ios7: • Если вы хотите получить сплошной цвет без градиента, создайте изображение размером 1 x 1 пункт. • Если вы хотите вертикальный градиент, создайте изображение, которое имеет ширину в 1 точку и высоту, соответствующую высоте фона элемента пользовательского интерфейса. • Если вы хотите создать повторяющийся текстурированный вид, вам нужно создать изображение с размерами, которые соответствуют размерам повторяющейся части текстуры. • Если вы хотите создать неповторяющийся текстурированный вид, вам нужно создать статическое изображение с размерами, которые соответствуют размерам фоновой области элемента пользовательского интерфейса. 

Для получения дополнительной информации, пожалуйста, перейдите по ссылке:
https://developer.Apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/ResizableImages.html#//Apple_ref/doc/uid/TP40006556-CH30-SW1

1
Sandip Patel - SM

Просто сделай это ..

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // This will set the backGround image for all the Navigation Bars

    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar"] forBarMetrics:UIBarMetricsDefault];



    return YES;
}
1
Gokul

Попробуйте этот код в классе appDelegate, это поможет вам.

[[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"navbarimg.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)] forBarMetrics:UIBarMetricsDefault];
0
Shahzaib Maqbool
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{


    [[UINavigationBar appearance] setTitleTextAttributes: @{
                                                            UITextAttributeTextColor: [UIColor whiteColor],
                                                            UITextAttributeTextShadowColor: [UIColor clearColor],
                                                            UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],
                                                            UITextAttributeFont: [UIFont fontWithName:@"AppleGothic" size:20.0f]
                                                            }];

 if([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0)
    {


        [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigatio_for_ios6"] forBarMetrics:UIBarMetricsDefault];

        [[UINavigationBar appearance] setTitleVerticalPositionAdjustment:0.0 forBarMetrics:UIBarMetricsDefault];
    }
else
    {
        [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x067AB5)];

        // Uncomment to change the color of back button
        [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

        // Uncomment to assign a custom backgroung image
        [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigon_bg_ios7.png"] forBarMetrics:UIBarMetricsDefault];

        // Uncomment to change the back indicator image

        [[UINavigationBar appearance] setBackgroundColor:[UIColor whiteColor]];
        [[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@""]];

        // Uncomment to change the font style of the title

        NSShadow *shadow = [[NSShadow alloc] init];
        shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
        shadow.shadowOffset = CGSizeMake(0, 1);

        [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,shadow, NSShadowAttributeName,[UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0], NSFontAttributeName, nil]];


        [[UINavigationBar appearance] setTitleVerticalPositionAdjustment:0.0 forBarMetrics:UIBarMetricsDefault];
    }



}
0
Paresh Hirpara