【问题标题】:Transform (rotate) a UIBarButtonItem转换(旋转)一个 UIBarButtonItem
【发布时间】:2010-10-05 13:11:35
【问题描述】:

有人知道如何转换 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 提交动画];

我确认转换适用于其他视图(我尝试使用 self.view)。

谢谢!

【问题讨论】:

  • 你用自定义视图初始化 UIBarButtonItem 了吗?
  • 糟糕!没有注意到日期:)

标签: rotation uibarbuttonitem cgaffinetransform


【解决方案1】:

使用:

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

【讨论】:

  • 很棒的解决方案!谁能确认这是否违反了苹果指南?
【解决方案2】:

UIBarButtonItem 没有扩展 UIView,所以不能直接转换。您可以将要转换的 UIBarButtonItem 添加到 UIToolbar,转换 UIToolbar,然后将工具栏作为自定义视图添加到另一个 UIBarButtonItem。然后可以将此项目设置为导航项目或添加到另一个 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;

【讨论】:

    猜你喜欢
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    相关资源
    最近更新 更多