Добавление панели инструментов в контроллер навигации - несоответствие цвета - PullRequest
0 голосов
/ 20 августа 2011

Я использовал следующий код для добавления нескольких кнопок в контроллер навигации

UIToolbar* toolbar = [[UIToolbar alloc]
                      initWithFrame:CGRectMake(0, 0, 100, 44)];
toolbar.tintColor = [UIColor clearColor];
[toolbar setBarStyle: UIBarStyleBlackTranslucent];

...

Проблема в том, что фон панели инструментов не соответствует 100% панели навигации.В верхней части панели инструментов отображается небольшая линия.Цвет почти такой же, но если вы посмотрите внимательно, вы можете увидеть прямоугольник ...

Я делаю следующее в делегате, чтобы установить фон панели навигации

self.navigationController.navigationBar.tintColor =  [UIColor colorWithRed:.0 green:.0 blue:.0 alpha:.4];

любые идеи, какполучить цвет фона, соответствующий цвету панели навигации?

screen capture of the problem

Ответы [ 2 ]

0 голосов
/ 10 марта 2013

Похоже, iOS 5 или более поздняя версия поддерживает это без хитрости в соответствии с этим ответом:

https://stackoverflow.com/a/9109910/1179521

И это сработало для меня!

0 голосов
/ 20 августа 2011

Лучший способ сделать эту работу - сделать панель инструментов полностью прозрачной. Один из способов сделать это - создать подкласс UIToolbar и переопределить drawRect: ничего не делать.

Вот моя реализация UITransparentToolbar (обратите внимание, это предполагает, что панель инструментов будет создана с помощью xib.):

@implementation UITransparentToolbar

- (id)initWithCoder:(NSCoder *)decoder
{
    if ( self = [super initWithCoder:decoder] )
    {
        self.backgroundColor = [UIColor clearColor];
        self.opaque = NO;
        self.translucent = YES;

    }
    return self;
}

- (void)drawRect:(CGRect)rect 
{
}

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

@end
...