UIToolBar фон прозрачный
Я пытаюсь разместить UIToolBar
в UINavigationBar
,
UIToolbar* tempFontSizeToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(kPaginationToolBarOriginX,kPaginationToolBarOriginY,kPaginationToolBarWidth,kPaginationToolBarHeight)];
tempFontSizeToolBar.backgroundColor = [UIColor clearColor];
// create the array to hold the buttons, which then gets added to the toolbar
NSMutableArray* buttons = [[NSMutableArray alloc] init];
[tempFontSizeToolBar setTranslucent:YES];
UIBarButtonItem *fontSizeBarButtonItem;
fontSizeBarButtonItem = [[UIBarButtonItem alloc]
initWithImage:[UIImage imageNamed:KpreviousPageIcon] style:UIBarButtonItemStylePlain target:self action:@selector(movePreviousPage:)];
[buttons addObject:fontSizeBarButtonItem];
[fontSizeBarButtonItem release];fontSizeBarButtonItem = nil;
fontSizeBarButtonItem = [[UIBarButtonItem alloc]
initWithImage:[UIImage imageNamed:KnextpageIcon] style:UIBarButtonItemStylePlain target:self action:@selector(moveNextPage:)];
[buttons addObject:fontSizeBarButtonItem];
[fontSizeBarButtonItem release];fontSizeBarButtonItem = nil;
// stick the buttons in the toolbar
[tempFontSizeToolBar setItems:buttons animated:NO];
[buttons release];buttons = nil;
UIBarButtonItem *rightBarItem = [[UIBarButtonItem alloc] initWithCustomView:tempFontSizeToolBar];
self.navigationItem.rightBarButtonItem = rightBarItem;
Цвет фона этого UIToolBar
синий по умолчанию. Но мне нужно, чтобы панель инструментов была чистого цвета, чтобы фоновое изображение панели навигации появлялось и на этой панели инструментов.
Просьба предложить мне.
3 ответа
Не уверен, что вы здесь, но ваш код грязный, и я думаю, вы можете получить то, что вы хотите, без особых усилий. В любом случае, элемент кнопки не должен иметь панель инструментов в качестве своего пользовательского вида.
Если ваша цель состоит в том, чтобы кнопка 'prev' слева и кнопка 'next' справа от UINavigationBar, то вы можете просто установить их как UINavigationItem leftBarButtonItem
а также rightBarButtonItem
, Нет необходимости в массиве.
Если ваша цель состоит в том, чтобы "prev" и "next" располагались рядом друг с другом и с правой стороны UINavigationBar, то поместите их ("next" сначала) в массив, а затем используйте UINavigationItem. setRightBarButtonItems:animated:
,
Ни в том, ни в другом случае UIToolbar не требуется. Вы можете связать UIToolbar с UINavigationController в соответствии с документами Apple здесь. Он появляется в нижней части экрана, возможно, не то, что вам нужно, но вы можете установить его оттенок или фоновое изображение. Если у вас должна быть панель инструментов сверху, вы можете создать ее и разместить там вручную, не слишком сложно.
Удачи!
Чтобы сделать панель инструментов прозрачной, используйте следующее:
const float colorMask[6] = {222, 255, 222, 255, 222, 255};
UIImage *img = [[UIImage alloc] init];
UIImage *maskedImage = [UIImage imageWithCGImage: CGImageCreateWithMaskingColors(img.CGImage, colorMask)];
[self.toolbar setBackgroundImage:maskedImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
Установить toolbarStyle -1, как это
tools.barStyle = -1; // clear background