使导航栏不降低内容

时间:2012-08-25 10:51:48

标签: iphone objective-c ios

我一直在寻找解决这个问题的方法,但是找不到一个......

我有一个类似于facebook的UIImageView,如果点击屏幕,图像文本和UINavigationBar将会出现。 问题是UINavigationBar在出现时将所有内容都推下来......

有没有办法将它放在一个更高的独立层或其他不会影响视图其余部分的其他层?

提前致谢。

2 个答案:

答案 0 :(得分:0)

我假设当用户点击imageView时,它就是你正在进行推送的代码。你应该做的是使用UIViewController的'presentViewController:'方法。你有一些关于动画将如何发生的选项,虽然这个视图将接管屏幕,但它不会被“推”:或看起来被“推”。在这种情况下,新视图由其自己的UIViewController子类控制。 [我使用这种技术。]

其他选项是查看UIView的'+(void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void(^)( BOOL完成))完成'方法,并将新视图旋转到视图中。您的原始视图控制器也将控制此视图,您可以执行您想要的操作,然后在完成后,用户点击某些内容并转回原始视图。 [我也使用这种技术]。

编辑:

注释中澄清问题的解决方案是将导航栏上的属性设置为透明。在iPad上现在没有Xcode方便,但你会在课堂描述中看到它。

答案 1 :(得分:0)

由于我找不到让内容无论导航栏是否存在的方法,我只是在显示栏时向上移动内容22px(UINavigationBar的默认高度)。这完全解决了我的问题。