2010-10-05 14 views
11

Czy ktoś wie, jak przekształcić UIBarButtonItem?Przekształć (obrócić) a UIBarButtonItem

próbowałem tego, ale bez rezultatów :( nie działa zarówno UIBarButtonItem i jego 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]; 

Potwierdzam transformacji prace na inne widoki (próbowałem z self.view).

Dzięki!

+0

gula  – Emil

+0

Czy zainicjowana UIBarButtonItem z niestandardowego widoku? –

+0

Ooops! Nie zauważyłem daty :) –

Odpowiedz

1

UIBarButtonItem nie rozszerza UIView, więc nie można przekształcić bezpośrednio. można dodać UIBarButtonItem chcesz przekształcić do UIToolbar, przekształcać UIToolbar a następnie dodać pasek narzędzi jako zwyczaj Zobacz do innego UIBarButtonItem. Ten element można następnie ustawić jako element nawigacji lub dodać do innego paska 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

zastosowanie:

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

Niesamowite rozwiązanie! Czy ktoś może potwierdzić, że narusza to wytyczne Apple? – ken