Tengo una barra de trabajo de UIT con el valor alfa de .6. Se ve muy bien, pero también deja los botones con un alfa de .6, lo cual está bien pero no es realmente deseable. ¿Hay alguna manera de establecer independientemente el alfa de un UIBarButtonItem? ¿Cómo conseguiría que estos se vean blancos en lugar de ligeramente atenuados?UIToolBar con alfa reducida, quiere que UIBarButtonItem tenga alpha 1
Respuesta
Cuando establece el alfa en una vista, todas las subvistas se componen con el mismo valor alfa. Lo que puede hacer en lugar de configurar el alfa en la vista es utilizar un color de tinte o color de fondo con un valor alfa. Esto puede producir efectos similares, sin que todas las subvistas hereden la transparencia.
toolbar.tintColor = [[UIColor blackColor] colorWithAlphaComponent:0.6];
Si esto no funciona y que realmente necesita para hacer la vista en sí transparente, tendrá que volver a trabajar la jerarquía de vista para que los puntos de vista opacas no son subvistas. Dado que los elementos del botón de barra no están disponibles como vistas estándar, probablemente no sea factible en el caso de la barra de herramientas.
self.bottomToolbar.barStyle = UIBarStyleBlack;
self.bottomToolbar.translucent = YES;
self.bottomToolbar.backgroundColor = [UIColor clearColor];
Ver la opacidad establecida en 1 y esta configuración lo hizo por mí.
Esta es la mejor respuesta – respectTheCode
También puede configurar esto en InterfaceBuilder/Storyboard (Estilo "Translucent Black") – ohcibi
encima no funcionó para mí en iOS 4.3, pero esto hizo:
Subclase UIToolbar, proporcionar un método:
- (void)drawRect:(CGRect)rect
{
[[UIColor colorWithWhite:0 alpha:0.6f] set]; // or clearColor etc
CGContextFillRect(UIGraphicsGetCurrentContext(), rect);
}
he encontrado que barStyle does'n realmente importa. Tampoco se establece el color de fondo para borrar.
self.toolbar.barStyle = UIBarStyleDefault;
self.toolbar.tintColor = [UIColor colorWithWhite:0.0 alpha:0.5];
self.toolbar.translucent = YES;
Esas líneas hicieron el trabajo por mí (ios4.3). Como puedo entender, al configurar las propiedades transfluent de las barras de herramientas en YES, las configura con fondo claro (transparente). Por supuesto, depende del color de tinte que haya establecido. Si no contiene componente alfa, la barra será opaca.
El problema principal con el control del valor alfa de la barra de herramientas es que se aplica a toda la barra de herramientas y sus botones. Si configura un backgroundColor
con un valor alfa de < 1, el color resultante se combina con el barStyle
(UIBarStyleDefault o UIBarStyleBlack) que da como resultado un color más opaco que el backgroundColor
original. Si configura el barTintColor
, parece anular todas las otras configuraciones, incluido cualquier valor alfa que establezca, lo que da como resultado un color completamente opaco.
La única manera que he podido hacer para reducir el alfa de la barra de herramientas sin afectar sus botones es por setting its background image via setBackgroundImage:forToolbarPosition:barMetrics:
. Se puede crear un 1px por imagen 1 píxel con el color y alfa deseado:
+ (UIImage *)onePixelImageWithColor:(UIColor *)color {
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, 1, 1, 8, 0, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedFirst);
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillRect(context, CGRectMake(0, 0, 1, 1));
CGImageRef imgRef = CGBitmapContextCreateImage(context);
UIImage *image = [UIImage imageWithCGImage:imgRef];
CGImageRelease(imgRef);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
return image;
}
A continuación, establezca el Fondo de la imagen:
[toolbar setBackgroundImage:[self onePixelImageWithColor:[[UIColor blackColor] colorWithAlphaComponent:0.7]]
forToolbarPosition:UIBarPositionBottom
barMetrics:UIBarMetricsDefault];
Esta es la respuesta correcta para iOS 9 – user8030
Después de muchas horas de evaluación de cada métodos anteriores, Descubrí que solo el método proporcionado por Ryan H. es factible. Es porque este es el método que puede manipular el valor alfa mientras que otros no pueden.
Aquí está la versión de Swift 3:
override func viewDidLoad() {
super.viewDidLoad()
let bgImageColor = UIColor.black.withAlphaComponent(0.6) //you can adjust the alpha value here
self.upperToolBar.setBackgroundImage(onePixelImageWithColor(color: bgImageColor),
forToolbarPosition: .any,
barMetrics: UIBarMetrics.default)
}
func onePixelImageWithColor(color : UIColor) -> UIImage {
let colorSpace = CGColorSpaceCreateDeviceRGB()
let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue)
var context = CGContext(data: nil, width: 1, height: 1, bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace, bitmapInfo: bitmapInfo.rawValue)
context!.setFillColor(color.cgColor)
context!.fill(CGRect(x:0,y: 0, width: 1, height:1))
let image = UIImage(cgImage: context!.makeImage()!)
return image
}
- 1. UIToolbar no mostrar UIBarButtonItem
- 2. iOS - usando UISearchDisplayController con UISearchBar que es UIBarButtonItem en UIToolbar
- 3. UIToolbar elementos que no muestran
- 4. Agregar UIToolbar con dos UIBarButtonItem a un UINavigationBar: pobre UIToolbar y qué pasa con el iPhone 4
- 5. ¿Cómo colocar UIBarButtonItem en el lado derecho de una UIToolbar?
- 6. Máscaras alfa con OpenGL
- 7. Cómo determinar la posición de UIBarButtonItem en UIToolbar?
- 8. Cómo agregar UIBarButtonItem en UIToolBar en el código
- 9. ¿Cómo pintar con alfa?
- 10. PyGame: sprites translúcidos con por pixel alpha
- 11. UIToolBar - desactivar botones
- 12. Los parches que agrego a mi gráfico no son opacos con alfa = 1. ¿Por qué?
- 13. Android Alpha Animation: el valor alfa vuelve al valor anterior después de que la animación finalizó
- 14. con baja alfa - subvista con alta alfa
- 15. ¿Cómo agrego un UIBarButtonItem a una UIToolbar con texto y una imagen en él?
- 16. Añadir espaciamiento entre UIToolbar
- 17. Agregar elementos a UIToolbar Programaticamente no funciona
- 18. Cómo matizar el color de fondo de UIBarButtonItem?
- 19. Alineación de elementos de UIToolBar
- 20. UISegmentedControl Color en una UIToolbar
- 21. OpenGL alpha blending
- 22. Android alpha animation fadein fadeout with retrasys
- 23. Problemas con GLUtils.texImage2D y Alpha en Texturas
- 24. Reemplace UITabBar con UIToolBar
- 25. Cómo evitar que UIBarButtonItem con atributos personalizados cambie de tamaño
- 26. UIToolbar con esquinas redondeadas
- 27. R a Wolfram Alpha
- 28. Python: startswith any alpha character
- 29. C# FTP con movilidad reducida CD
- 30. iOS - UIToolBar como inputAccessoryView para UITextView
self.bottomToolbar.barStyle = UIBarStyleBlack; self.bottomToolbar.translucent = YES; self.bottomToolbar.backgroundColor = [UIColor clearColor]; –
Esta respuesta http://stackoverflow.com/a/5149484/1250436 es mejor. – ohcibi