setAlpha в UINavigationController

Я хочу установить альфа-канал titleView в моем UINavigationController. Вот код для этого класса:

#import "FAQNavigationController.h"


@implementation FAQNavigationController

/*
 // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {

    }
    return self;
}
*/


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {

 self.navigationItem.titleView.alpha = 0.5;


    [super viewDidLoad];
}


/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [super dealloc];
}


@end

Кроме того, вот скриншот этого результата: Как видите, альфа не изменилась.

альтернативный текст

Любые идеи? Я размещаю это в неправильном месте?


person Jesse Bunch    schedule 31.08.2010    source источник
comment
См. stackoverflow.com/a/26365491/1418457.   -  person onmyway133    schedule 14.10.2014


Ответы (1)


Проблема в том, что self.navigationItem.titleView вам ничего не дает. Свойство может быть установлено вами для замены метки по умолчанию, показанной на снимке экрана. Однако не существует API, предназначенного для того, чтобы делать то, что вы хотите.

Вопрос: чего вы хотите добиться? Вы можете сделать полосу полупрозрачной, если хотите, или изменить ее оттенок. Изменить непрозрачность текста не так уж просто. Вы можете возиться с подпредставлениями UINavigationBar контроллера, но я бы воздержался от этого.

person Max Seelemann    schedule 31.08.2010
comment
Спасибо за ваш ответ, мне действительно нужно изменить непрозрачность фактической метки заголовка. У вас есть идеи о том, как я могу это сделать? Я пытаюсь сделать дизайнера счастливым :) - person Jesse Bunch; 31.08.2010
comment
Не делайте его счастливым, скажите ему, что это слишком сложно. Я опубликовал более подробное обсуждение и возможное решение по вашему другому вопросу здесь: stackoverflow.com/questions/3610826/ - person Max Seelemann; 31.08.2010