iOS - [UIColor clearColor] и UIToolbars - PullRequest
       36

iOS - [UIColor clearColor] и UIToolbars

0 голосов
/ 02 сентября 2011

Я пытался использовать [UIColor clearColor] с UIToolbar, пытаясь сделать пользовательский интерфейс управления более подходящим для «механического» приложения (подумайте о кнопках, которые вы увидите в фильме 70-х годов).

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

Я вижу одно отличие в том, что я использую панель инструментов на контроллере навигации, а не в отдельности UIToolbar.

Строки кода:

self.navigationController.toolbar.translucent = YES;
self.navigationController.toolbar.backgroundColor = [UIColor clearColor];

, а моя верхняя панель навигации (которая настроена в другом виде) - UIBarStyleBlackTranslucent, это может быть сброшено?

любая помощь в отслеживании этого была бы великолепна.

1 Ответ

1 голос
/ 07 сентября 2011

Вы можете установить прозрачный фон для панели инструментов вашего контроллера навигации с помощью следующего кода:

// UIToolbar.h
@interface UIToolbar (Transparency)
- (void)drawRect:(CGRect)rect;
@end
// UIToolbar.m
#import "TransparentToolbar.h"
@implementation UIToolbar (Transparency)
- (void)drawRect:(CGRect)rect {
    [[UIColor clearColor] set];
    CGContextFillRect(UIGraphicsGetCurrentContext(), rect);
}
@end

Использование:

// bar_bottom_bumped.png is a toolbar image with transparency
UIImage *bg = [UIImage imageNamed:@"bar_bottom_bumped.png"];
UIImageView *background = [[UIImageView alloc] initWithImage:bg];
background.frame = self.navigationController.toolbar.bounds;
background.autoresizingMask = UIViewAutoresizingFlexibleWidth;
BOOL isIOS5 = [[[UIDevice currentDevice] systemVersion] intValue] >= 5;
self.navigationController.toolbar.backgroundColor = [UIColor clearColor];
[self.navigationController.toolbar insertSubview:background atIndex: (isIOS5 ? 1 : 0)];
...