代码之家  ›  专栏  ›  技术社区  ›  Emil

旋转金刚砂

  •  3
  • Emil  · 技术社区  · 14 年前

    UIBarButtonItem .

    我已经可以这样做了 UIButton setTransform:CGAffineTransformMakeRotation(…) ,但是 没有此属性。

    我知道相机应用程序可以做到这一点,所以它应该是可以实现的。

    谢谢。

    4 回复  |  直到 14 年前
        1
  •  2
  •   nicktmro    14 年前

    您是否尝试过在uibarbuttonem中使用自定义视图,然后根据需要进行任何转换?

        2
  •  1
  •   Brody Robertson    12 年前

    uibarbuttonem不扩展UIView,因此不能直接转换。您可以将要转换的uibarbuttonem添加到UIToolbar,转换UIToolbar,然后将工具栏作为自定义视图添加到另一个uibarbuttonem。然后可以将此项设置为导航项或添加到另一个UIToolbar。但是,如果您使用的是自定义视图或图像,那么Emil在上面的注释中的方法是最好的。

    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;
    
        3
  •  1
  •   Justin    8 年前

    你可以把一个UIButton放在一个条形按钮项中,而不是旋转UIButton。

        4
  •  0
  •   galactikuh    8 年前

    我扩展了UIToolBar,允许访问它的子视图,其中有一个rotate函数,可以将按钮旋转到与工具栏相反的方向:

    - (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));
        }
    
    }