【问题标题】:Vertical UIToolBar and also its UIBarButtonItem垂直 UIToolBar 及其 UIBarButtonItem
【发布时间】:2012-11-22 12:27:46
【问题描述】:
在我的应用程序中,我有一个 UIToolBar。在纵向模式下,此工具栏位于顶部且水平,但当设备旋转时,此工具栏应转换为垂直工具栏并应放置在左侧。此外,它的子视图,即 5 个 UIBarButtonItems 也应相应放置。
有人知道解决办法吗?
我已阅读this 以供参考,但我的工具栏应根据方向自行对齐。我正在使用 iOS 6。
【问题讨论】:
标签:
objective-c
ios
ipad
cocoa-touch
uitoolbar
【解决方案1】:
没有内置的垂直菜单功能(目前)。您的问题分为两部分:
垂直UIToolbar:
您可以限制设备方向,工具栏将保持在同一位置
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
(这将影响所有视图)
或者你可以监听方向变化并使用它的 transform 属性相应地旋转你的工具栏,例如
toolbar.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI/2);
旋转的UIBarButtonItem:
如果您旋转了工具栏(上面的案例 2),项目也会旋转。
如果没有,您需要轮换您的物品。几篇文章展示了如何处理 UIBarButtonItem 没有扩展 UIView 的事实,它没有转换属性 (see here)。最后,您将不得不再次监听方向变化并旋转工具栏的子视图,例如
for (UIView *view in toolbar.subviews) {
view.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI/2);
}
当然应用与您的方向相关的旋转(M_PI/2 或 -M_PI/2)。