2010-10-05 14 views
11

¿Alguien sabe cómo transformar un UIBarButtonItem?Transformar (rotar) un UIBarButtonItem

he intentado esto, pero sin resultados :( No está funcionando tanto en UIBarButtonItem y su CustomView.

 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:5.0f]; 
CGAffineTransform myTransform = CGAffineTransformMakeRotation(M_PI_2); 
UIBarButtonItem * currentItem = [self.toolbarItems objectAtIndex:4]; 
currentItem.customView.transform = myTransform; 
[UIView commitAnimations]; 

confirmo la obra de transformación en otros puntos de vista (probé con self.view).

Gracias!

+0

bache  – Emil

+0

¿Ha inicializado UIBarButtonItem con vista personalizada? –

+0

¡Ooops! No he notado la fecha :) –

Respuesta

1

UIBarButtonItem no se extiende UIView, por lo que no se puede transformar directamente. puedes añadir el UIBarButtonItem desea transformar a un UIToolbar, transformar el UIToolbar y luego agregar la barra de herramientas como una costumbre ver a otro UIBarButtonItem. Este elemento se puede establecer como un elemento de navegación o agregarse a otra UIToolbar.

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(handleForwardItemTouch:)]; 

UIToolbar *backToolbar = [[[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 44, 44)] autorelease]; 
[backToolbar setTransform:CGAffineTransformMakeScale(-1, 1)]; 

UIBarButtonItem *backToolbarItem = [[[UIBarButtonItem alloc] initWithCustomView:backToolbar] autorelease]; 
self.navigationItem.rightBarButtonItem = backToolbarItem; 
17

uso:

UIView *view = [backItem valueForKey:@"view"]; 
view.transform = CGAffineTransformMakeScale(-1, 1); 
+0

¡Solución impresionante! ¿Alguien puede confirmar si esto infringe las pautas de Apple? – ken