【问题标题】:UIToolbar shadow doesn´t hide when bar position is UIBarPositionTopAttached当栏位置为 UIBarPositionTopAttached 时,UIToolbar 阴影不会隐藏
【发布时间】:2015-04-15 21:39:26
【问题描述】:

我有一个包含两个视图和一个工具栏的容器视图。在ContainerViewController 中,我使用此代码(来自 Apple 的库)“停用”了导航栏的阴影:

[self.navigationController.navigationBar setShadowImage:[UIImage imageNamed:@"TransparentPixel"]];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"Pixel"] forBarMetrics:UIBarMetricsDefault];

我还实现了UIToolbarDelegate 及其方法

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar 
{
    return UIBarPositionTop; //or return UIBarPositionTopAttached;
}

但工具栏的阴影仍然在导航栏和工具栏之间,而不是在工具栏下方,以将工具栏与内容分开。

任何想法为什么阴影不会改变?或者如何检查工具栏位置是否真的是TopAttached。

编辑:

我尝试做类似这篇文章中描述的事情:UISegmentedControl below UINavigationbar in iOS 7 没有搜索栏。 正如那里所解释的,有两个阴影,一个是导航控制器中的导航栏,位于导航栏和工具栏之间。和工具栏的阴影。 如前所述,我能够停用导航栏的阴影。它也适用于viewDidLoad:

但是工具栏的阴影位置不对。使用positionForBar: 方法,它应该位于工具栏的按钮中,但它仍位于顶部(在导航栏和工具栏之间)。

所以我正在寻找故障,为什么它没有改变。

【问题讨论】:

  • 你想用什么方法改变阴影?

标签: ios objective-c uitoolbar


【解决方案1】:

您没有指定您尝试更改阴影的方法,但我猜您正在尝试在 viewDidLoad: 中执行此操作

viewDidLoad 中实际上并不存在您的navigationBar,而是像这样更改viewWillAppear: 中的阴影:

-(void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController.navigationBar setShadowImage:[UIImage imageNamed:@"TransparentPixel"]];
    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"Pixel"] forBarMetrics:UIBarMetricsDefault];     
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2020-06-21
    • 1970-01-01
    相关资源
    最近更新 更多