2010-10-05 4 views
11

Est-ce que quelqu'un sait comment transformer un UIBarButtonItem?Transformer (faire pivoter) un UIBarButtonItem

J'ai essayé, mais sans résultat :( Il ne fonctionne pas sur les deux UIBarButtonItem et son 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]; 

Je confirme la transformation des œuvres sur d'autres vues (j'ai essayé avec self.view).

Merci!

+0

bosse  – Emil

+0

Avez-vous initialisé UIBarButtonItem avec vue personnalisée? –

+0

Oups! Je n'ai pas remarqué la date :) –

Répondre

1

UIBarButtonItem ne couvre pas UIView, donc il ne peut pas être transformé directement. vous pouvez ajouter le UIBarButtonItem que vous souhaitez transformer en un UIToolbar, transformer le UIToolbar, puis ajoutez la barre d'outils comme une coutume vue à un autre UIBarButtonItem. Cet élément peut ensuite être défini en tant qu'élément de navigation ou ajouté à un autre 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

utilisation:

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

Super solution! Quelqu'un peut-il confirmer si cela va à l'encontre des directives d'Apple? – ken

Questions connexes