垂直 UIToolBar 及其 UIBarButtonItem
Posted
技术标签:
【中文标题】垂直 UIToolBar 及其 UIBarButtonItem【英文标题】:Vertical UIToolBar and also its UIBarButtonItem 【发布时间】:2012-11-22 12:27:46 【问题描述】:在我的应用程序中,我有一个 UIToolBar。在纵向模式下,此工具栏位于顶部且水平,但当设备旋转时,此工具栏应转换为垂直工具栏并应放置在左侧。此外,它的子视图,即 5 个 UIBarButtonItems 也应相应放置。
有人知道解决办法吗?
我已阅读this 以供参考,但我的工具栏应根据方向自行对齐。我正在使用 ios 6。
【问题讨论】:
【参考方案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)。
【讨论】:
【参考方案2】:我遇到了同样的问题,所以我将UIToolbar
子类化,并将其变成了我想要的样子。
这是 GitHub 链接:https://github.com/fennelouski/NKFToolbar
【讨论】:
以上是关于垂直 UIToolBar 及其 UIBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章
iOS 7 的 UIToolbar 中 UIBarButtonItems 的垂直位置不正确
在 UIToolbar 内向上移动 UIBarButtonItems
更改 UIBarButtonItem 的 UIToolbar 阴影颜色