将工具栏放在屏幕顶部,底部有正确的阴影

时间:2013-10-30 17:19:38

标签: ios objective-c xcode toolbar

我有基于导航控制器的应用程序,一个viewcontroller以横向模式呈现模态图。然后我添加工具栏和完成按钮以关闭图形vc并返回导航和纵向模式。

我无法弄清楚如何将工具栏放在图形视图控制器的顶部,并在工具栏底部显示正确的阴影。到目前为止,我有这个代码将工具栏添加到底部位置,它在工具栏的顶部有默认阴影。是否允许在屏幕顶部设置工具栏?由于强制定向旋转的原因,我无法使用带有图形vc的导航控制器。平台仅限iOS7和iPhone。感谢。

UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(self.view.bounds.origin.x, self.view.bounds.size.width - 44.0, self.view.bounds.size.height, 44.0)];

UIBarButtonItem *flexibleSpaceButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

UIBarButtonItem *doneButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];

toolbar.items = [NSArray arrayWithObjects:flexibleSpaceButtonItem, doneButtonItem, nil];

[self.view addSubview:toolbar];

2 个答案:

答案 0 :(得分:1)

我认为你的画面看起来有点奇怪。您正在从视图宽度计算y位置,从视图高度计算宽度。

也许您必须使用UIBarPositioning协议指定工具栏位于顶部。

UIImage *shadow = [toolbar shadowImageForToolbarPosition: UIBarPositionAny];
[toolbar setShadowImage:shadow forToolbarPosition:UIBarPositionTopAttached];

下一步编辑:

这是文档对iOS 7 UIToolbar的评价:

  

<强> UIBarPositionTop
  指定条位于其包含视图的顶部       系统使用此作为提示来相应地绘制方向性装饰。例如,任何阴影都将绘制在条形图下方。        UIToolbar的实例在iPhone上不显示此位置,但可以在iPad上显示。
      适用于iOS 7.0及更高版本       在UIBarCommon.h

中声明

也许工具栏不适合在顶部使用。但是,您只需添加addSubview:

的阴影即可

答案 1 :(得分:1)

尝试实施方法

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar 
来自UIToolbarDelegate协议的