Rotate UIBarButtonItem

后端 未结 4 417
时光说笑
时光说笑 2021-01-14 16:10

I want to rotate a UIBarButtonItem.

I have been able to do this with UIButtons using setTransform:CGAffineTransformMakeRotation(…)

相关标签:
4条回答
  • 2021-01-14 16:36

    You could put a UIButton inside a Bar Button Item, than rotate the UIButton.

    0 讨论(0)
  • 2021-01-14 16:37

    I extended UIToolBar, giving access to its subviews, and in it have a function rotate that rotates the buttons in the opposite direction of the bar:

    - (void)rotate: (int)degrees{
        //for the bar
        self.transform=CGAffineTransformMakeRotation(DegreesToRadian(degrees));
        //for the subviews (UIBarButtonItems)
        for (UIView * subView in self.subviews)
        {
            if(!CGRectEqualToRect(subView.bounds, self.bounds))
                subView.transform =   CGAffineTransformMakeRotation(DegreesToRadian(-degrees));
        }
    
    } 
    
    0 讨论(0)
  • 2021-01-14 16:44

    UIBarButtonItem does not extend UIView, so it cannot be transformed directly. You can add the UIBarButtonItem you wish to transform to a UIToolbar, transform the UIToolbar and then add the toolbar as a custom view to another UIBarButtonItem. This item can then be set as a navigation item or added to another UIToolbar. However, if you are using a custom view or image then Emil's approach in the comment above is best.

    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;
    
    0 讨论(0)
  • 2021-01-14 16:48

    Have you tried using a custom view inside the UIBarButtonItem that you then transform any way you want?

    0 讨论(0)
提交回复
热议问题