我正在创建一个覆盖窗口的自定义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上假视图不不要覆盖标签栏。为什么它也不能在iphone上执行此操作?
==========
编辑2 另一个奇怪的事情。我正在生成日志消息以获得导航控制器的高度。它改变49取决于我是否正常显示或作为模态视图出现并且没有标签栏。
所以日志说431应该是正确的高度。我进入界面构建器并设置一个简单的粉红色视图,在431测量它看起来很棒:)但是当我手动将大小设置为431时,它不起作用。我必须将大小设置为298才能使其正常工作......很奇怪......
看到粉红色的酒吧?它实际上是431高......日志说这就是我的看法..但它不是:/
============
编辑:3
我已将此跟踪到imagebackground,并且气泡徽标调整不正确...
答案 0 :(得分:2)
我必须检查imageview所在的父视图中的“剪辑子视图”...修复了问题......