Cuando intenta eliminar una nota en la aplicación de notas de iPhone, aparece una hoja UIActionSheet. La hoja es translúcida (pero no negra translúcida). ¿Cómo se logra eso? ¿Es posible hacer que el fondo de UIActionSheet tenga un cierto color?Desarrollo de iPhone: ¿Cómo crear fondo de color o translúcido para UIActionSheet?
Respuesta
que suelo poner en práctica el método siguiente delegado:
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
sólo para hacer una muestra. En este caso utilizo una estirada PNG como fondo:
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
UIImage *theImage = [UIImage imageNamed:@"detail_menu_bg.png"];
theImage = [theImage stretchableImageWithLeftCapWidth:32 topCapHeight:32];
CGSize theSize = actionSheet.frame.size;
// draw the background image and replace layer content
UIGraphicsBeginImageContext(theSize);
[theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];
theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[actionSheet layer] setContents:(id)theImage.CGImage];
}
y este es el resultado: alt text http://grab.by/4yF1
Me parece negro (nota: usando 2.2.1). La única razón por la que hay un color es por el amarillo detrás de él.
Una opción sería utilizar el fondo negro transparente y conocer el tamaño y la velocidad de la hoja de acción. Luego, cree una vista y anímela al mismo tiempo que muestra la hoja de acción, justo debajo de ella, para darle un matiz diferente al color que se encuentra naturalmente detrás de la hoja de acción. Tendría que hacer que la vista de color también sea translúcida para que pueda ver detrás de eso también.
No estoy seguro si puedes, pero también puedes intentar ajustar la opacidad de la hoja de acción también.
Ajuste de la la opacidad de la hoja de acción afecta los botones también. – Boon
Si echas un vistazo a la aplicación de notas, verás que los botones no son 100% opacos. –
Definitivamente puede ajustar la opacidad ajustando el valor alfa. Interface Builder le permite editar el valor directamente, pero en código creo que haría:
[[myActionSheet view] setOpaque:NO];
[[myActionSheet view] setAlpha:0.5];
No estoy seguro de si necesita la llamada setOpaque o no - Creo que se utiliza para ayudar a optimizar el rendimiento, como el iPhone no intentará mostrar nada oculto por la vista opaca.
No es demasiado difícil. Usted puede utilizar el siguiente código:
CGSize mySize = myActionSheet.bounds.size;
CGRect myRect = CGRectMake(0, 0, mySize.width, mySize.height);
UIImageView *redView = [[[UIImageView alloc] initWithFrame:myRect] autorelease];
[redView setBackgroundColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.5]];
[myActionSheet insertSubview:redView atIndex:0];
Sólo asegúrese de que presente la UIActionSheet antes de hacer esto o el tamaño suele ser fijado. Eso hace que sea un poco feo, pero se podría hacer algo como:
[myActionSheet showInView:self.view];
if (!redAdded) {
redAdded = YES;
//THE ABOVE CODE GOES HERE
}
Si enlaza el tamaño a la vista, no tendría que hacer la parte posterior. También tuvo que reemplazar xey con alto y ancho: CGSize mySize = self.view.bounds.size; CGRect myRect = CGRectMake (0, 0, mySize.height, mySize.width); – StuartM
Usando - (void) willPresentActionSheet: (UIActionSheet *) actionSheet es un gancho mejor en general –
También puede usar una imagen en lugar de un color configurando un UIImage en el UIImageView: [actionBackground setImage: [UIImage imageNamed: @ "captainplanet. png "]]; – ninehundredt
Puede usar el siguiente código:
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackOpaque;
o
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackTranslucent;
Gracias, esto es exactamente lo que estaba buscando – GeneCode
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackTranslucent;
- 1. ¿Cómo puedo crear un UIViewController modal translúcido?
- 2. Color del botón UIActionSheet
- 3. Color de fondo de Iphone UIButton
- 4. ¿Cómo hacer que el color de fondo de un div sea translúcido?
- 5. iPhone Desactivar botones de UIActionSheet
- 6. ¿Cómo agregar esquinas redondeadas al fondo translúcido de actividad?
- 7. Cambie el color del negro translúcido UINavigationBar
- 8. 2 rayas de color de fondo con o sin imágenes?
- 9. iPhone SDK - UIActionSheet - Títulos de botón dinámico
- 10. iPhone - cambiando el color de fondo de UIWebView detrás de la vista (fondo que rebota)
- 11. usando color de imagen o tinte en uinavigationbar en iphone?
- 12. iAd o AdMob para el desarrollo de iPhone/iPad?
- 13. Simulador de iPhone para desarrollo web en Linux o ventana
- 14. navigationbar (color de fondo)
- 15. Color de fondo de UIView
- 16. ¿Cómo cambiar la secuencia del botón en UIActionsheet en iPhone?
- 17. NSImageView + Color de fondo
- 18. Establecer el color de fondo para JFrame
- 19. Color de fondo UIWebView
- 20. Color de fondo para Tk en Python
- 21. posición de fondo para el color de fondo
- 22. div color de fondo, para cambiar onhover
- 23. UIButton con color de borde personalizado, iPhone
- 24. iPhone UIActionSheet auto-rotación no funciona
- 25. Cómo establecer el color de fondo para UIWebView en el iPhone sdk
- 26. Certificado de desarrollo y distribución para el desarrollo de iPhone
- 27. Color de fondo para GTK_WINDOW_TOPLEVEL Gtk Widget
- 28. Establecer color de fondo para UINavigationBar
- 29. Establecer color/imagen de fondo para EKEventEditViewController
- 30. ¿Cómo crear los certificados necesarios para el desarrollo de iOS?
¿Podría publicar un enlace a esa imagen?Se ve muy bien, gracias y una gran solución para reemplazar la imagen de fondo! – JonasG
esto no me funciona! – Fay007