UIToolBar фон прозрачный - PullRequest
       30

UIToolBar фон прозрачный

1 голос
/ 22 февраля 2012

Я пытаюсь поместить 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 ]

5 голосов
/ 13 декабря 2012

Чтобы сделать панель инструментов прозрачной, используйте следующее:

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];
3 голосов
/ 22 февраля 2012

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

Если ваша цель состоит в том, чтобы кнопка 'prev' слева и кнопка 'next' справа от UINavigationBar, то вы можете просто установить их как UINavigationItem как leftBarButtonItem и rightBarButtonItem. Массив не требуется.

Если ваша цель состоит в том, чтобы «prev» и «next» располагались рядом друг с другом и с правой стороны UINavigationBar, затем поместите их («next» сначала) в массив, а затем используйте setRightBarButtonItems:animated:. UINavigationItem's.

Ни в одном случае UIToolbar не требуется. Вы можете соединить UIToolbar с UINavigationController в соответствии с документами Apple здесь . Он появляется в нижней части экрана, возможно, не то, что вы хотите, но вы можете установить его оттенок или фоновое изображение. Если у вас должна быть панель инструментов вверху, вы можете создать ее и поместить туда вручную, не слишком сложно.

Удачи!

2 голосов
/ 10 июля 2013

установить toolbarStyle -1 вот так

 tools.barStyle = -1; // clear background
...