bar ios6 uinavigationbar rightbarbuttonitem

ios6 - add button to navigation bar swift 4



el elemento de botón de barra derecha personalizado en ios6 no es transparente (1)

Sé que este es un tema viejo, pero tuve el mismo problema, y ​​pensé que podría interesarte lo que descubrí.

En este hilo está disponible una solución temporal (la respuesta por jd, no la respuesta "aceptada").

Debería poder obtener el comportamiento que desea con este código:

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];

Aunque esto funciona, no estoy convencido de que sea la forma correcta de hacerlo, así que comencé un nuevo hilo aquí en caso de que alguien sepa que el código secreto para hacer que un rectángulo conteniendo UIToolbar comporte como un objeto transparente.

Estoy creando un elemento de botón de barra derecha personalizado para mi barra de navegación utilizando el siguiente código:

// 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];

hasta ios 6 esto funciona como se esperaba, desde ios 6 obtengo este extraño fondo de rectángulo

y agregando

tools.opaque = NO; tools.backgroundColor = [UIColor clearColor];

no ayuda,

por favor, ayúdame a deshacerme de este fondo

Gracias de antemano, Amit