Преобразовать (повернуть) UIBarButtonItem - PullRequest
11 голосов
/ 05 октября 2010

Кто-нибудь знает, как преобразовать UIBarButtonItem?

Я пробовал это, но безрезультатно :( Он не работает ни для UIBarButtonItem, ни для его пользовательского представления.

[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];

Я подтверждаю преобразованиеработает на других видах (я пробовал с self.view).

Спасибо!

Ответы [ 2 ]

17 голосов
/ 13 декабря 2012

использование:

UIView *view = [backItem valueForKey:@"view"];
view.transform = CGAffineTransformMakeScale(-1, 1);
1 голос
/ 05 сентября 2012

UIBarButtonItem не расширяет UIView, поэтому его нельзя преобразовать напрямую.Вы можете добавить UIBarButtonItem, который вы хотите преобразовать, в UIToolbar, преобразовать UIToolbar, а затем добавить панель инструментов в качестве пользовательского представления в другой UIBarButtonItem.Затем этот элемент можно установить как элемент навигации или добавить на другую панель инструментов UITool.

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;
...