Customize navigation bar with title view Customize navigation bar with title view ios ios

Customize navigation bar with title view


This works. Give frame at the time of initialisation

UIView *iv = [[UIView alloc] initWithFrame:CGRectMake(0,0,32,32)];[iv setBackgroundColor:[UIColor whiteColor]];self.navigationItem.titleView = iv;


If you want to just customize the title for one view controller you can use

UILabel *lblTitle = [[UILabel alloc] init];lblTitle.text = @"Diga-nos o motivo";lblTitle.backgroundColor = [UIColor clearColor];lblTitle.textColor = [UIColor colorWithRed:77.0/255.0 green:77.0/255.0 blue:77.0/255.0 alpha:1.0];lblTitle.shadowColor = [UIColor whiteColor];lblTitle.shadowOffset = CGSizeMake(0, 1);lblTitle.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0];[lblTitle sizeToFit];self.navigationItem.titleView = lblTitle;

or if you want to customize for all view controllers use

[[UINavigationBar appearance] setTitleTextAttributes:    [NSDictionary dictionaryWithObjectsAndKeys:        [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0],         UITextAttributeTextColor,         [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8],         UITextAttributeTextShadowColor,         [NSValue valueWithUIOffset:UIOffsetMake(0, -1)],         UITextAttributeTextShadowOffset,         [UIFont fontWithName:@"Arial-Bold" size:10.0],         UITextAttributeFont,         nil]];


Replace

[self.navigationController.navigationItem.titleView addSubview:testView];

to

self.navigationItem.titleView = testView;

Edit:

Note: You cannot add subviews to titleView cause it's default value is nil, you need to set a new view as the titleView.