自定义的UIView覆盖UITabBar的iPhone,但不是iPad的(Custom UIView

2019-10-17 06:55发布

我创建覆盖窗口中的自定义的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 ...

Answer 1:

我不得不检查“剪辑子视图”父认为imageview的在...固定的问题...



文章来源: Custom UIView covering UITabBar on iPhone but not iPad