我创建覆盖窗口中的自定义的UIView。 它的作用有点像在导航控制器诱饵的UIView。 因此,我不得不做这种方式来覆盖导航栏....长的故事...
这里是如何得到的设置。
self.searchPopDown.frame = CGRectMake(0, 20, self.navigationController.view.frame.size.width, self.navigationController.view.frame.size.height-20);
self.searchPopDown.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
20是补偿的状态栏。
然后,我只需添加视图作为一个子视图到应用程序窗口。
//this will add the view ontop of a modalViewController and support rotation!
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
if ([[[window subviews] objectAtIndex:0] isKindOfClass:[SVProgressHUD class]]){
//There is a chance that the window will be the SVProgressHUD in this case we need to get the main window.
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
[[[window subviews] objectAtIndex:0] addSubview:self.searchPopDown];
所有这一切的伟大工程和花花公子。 不过我已经发现了一些奇怪的。 在iPhone这个观点最终会被调整到覆盖UITabBar在我的应用程序的底部。 但在iPad上它被正确地调整,以补偿UITabBar。 任何想法,为什么?
谢谢
=================
下面是一些截图描述了这个问题。 这是个什么样子,当视图加载与假视图上的一切一样。 该图显示了(至于对用户来讲只是视图和导航栏按钮也略有改变。当你搜索这个假视野中消失露出下面的搜索结果中的真实看法。在iPad上的假冒视图没有按“T覆盖在标签栏。为什么它不这样做在iPhone上也?
==========
编辑2另一个奇怪的事情。 我生成日志消息来获得导航控制器的高度是什么。 它取决于如果我正常或存在显示为模态的视图,并且没有标签栏上改变由49。
所以说,数431应该是正确的高度。 我进入界面生成器和设置多数民众赞成在431测量一个简单的粉红色的看法,他看上去很不错:)不过,当我手动设置大小431这是行不通的。 我要的大小设置为298,以得到这个工作正常... ...怪异
看到粉红色的吧? 这是从字面上431高大......和日志说,这是我的看法是什么..但它不是:/
============
编辑:3
我已经追查这与气泡标志调整不当imagebackground ...