1

我有基于导航控制器的应用程序,一个视图控制器以横向模式呈现模态图。然后我添加带有完成按钮的工具栏以关闭图形 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];
4

2 回答 2

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:

于 2013-10-30T17:22:47.573 回答
1

尝试实现方法

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar 

UIToolbarDelegate协议。

于 2014-03-31T09:30:26.297 回答