Пользовательский элемент правой панели кнопок в ios6 не прозрачен
Я создаю пользовательский элемент правой панели кнопок для моей панели навигации, используя следующий код:
// create a toolbar
UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 50, 44.01)];
// create the array to hold the button, which then gets added to the toolbar
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:1];
// create a toolbar item with image
NSString* pathToSettingsResourceFile = [[NSBundle mainBundle] pathForResource:@"19-gear" ofType:@"png"];
UIImage* settingsImage = [[[UIImage alloc] initWithContentsOfFile:pathToSettingsResourceFile] autorelease];
settings = [[UIBarButtonItem alloc]initWithImage:settingsImage style:UIBarButtonItemStylePlain target:self action:@selector(showSettings:)];
settings.enabled = FALSE;
// add button to toolbar
[buttons addObject:settings];
[tools setItems:buttons animated:NO];
[buttons release];
// add toolbar as a right bar button item
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:tools] autorelease];
[tools release];
до ios 6 это работает как положено, с ios 6 я получаю этот странный прямоугольник
и добавление
tools.opaque = NO;
tools.backgroundColor = [UIColor clearColor];
не помогает,
пожалуйста, помогите мне избавиться от этого фона
Заранее спасибо, Амит
1 ответ
Я знаю, что это старая ветка, но у меня была та же проблема, и я подумал, что вас может заинтересовать то, что я обнаружил.
Обходной путь доступен в этой теме (ответ от jd, а не "принятый" ответ).
Вы должны быть в состоянии получить желаемое поведение с помощью этого кода:
const float colorMask[6] = {222, 255, 222, 255, 222, 255};
UIImage *img = [[UIImage alloc] init];
UIImage *maskedImage = [UIImage imageWithCGImage: CGImageCreateWithMaskingColors(img.CGImage, colorMask)];
[tools setBackgroundImage:maskedImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
Хотя это работает, я не уверен, что это правильный способ сделать это, поэтому я начал новый поток здесь на случай, если кто-нибудь знает секретный код для создания UIToolbar
содержащий прямоугольник ведет себя как прозрачный объект должен.