2016-06-23 6 views
1

「下」ボタンをクリックすることができません:私はそうのように私のタブバーを隠す隠しTabBarの

self.tabBarController.tabBar.hidden = NO; 

そして今、それはかつて私は(上にUIWebViewあるビューを伸ばすに立っていた黒いバーがあるので、またはその下にあるか?)その空きスペース。 UIWebViewUIViewControllerです。

enter image description here

制約のためのコード:

if(self.tabBarController.tabBar.hidden){ 
    self.webviewBottomConstrain.constant = -self.tabBarController.tabBar.frame.size.height; 
}else{ 
    self.webviewBottomConstrain.constant = 0; 
} 

しかし、私はTabBarにはそれが意志だった場所にデバイスをタップする場合、私は、デフォルトではとても似ている制約とそれを行います実行しないでください。あたかもタブバーの大きさに目に見えないものがあるかのようです。私もそれを隠すことを試みたthis thread sugests。それでも同じ結果。

更新:あなたが目に見えないタブバー上でタップすると、タップは、あなたは、そのを設定することで、あなたのタブバーを非表示タブバー

答えて

2

self.extendedLayoutIncludesOpaqueBars = YES; これはあなたの問題を解決します

+0

これは、タブバーが表示されているときとは異なる表示ロジックを適用しません。タブバーを表示するとNOに設定し、タブバーを非表示にするとYESに設定する必要がありますか? – h3dkandi

+0

これは文字通り私のために働いた唯一の解決策です – Adam

0

の下に表示されているビューでタブバーによって認識されていないようです隠されたプロパティをNO? YESに設定してみてください。私があなたがしようとしていることを誤解していない限り、あなたのタブバーはそのコードで隠されていないようです。

もう1つチェックするのは、ユーザーインタラクションが有効かどうかをウェブビューで確認することです。そうでない場合は、あなたの視点とのやりとりを妨げるような、見えないものがあるように見えるかもしれません。

+0

しかし、それは隠されています。私はそれを "デバッグビュー階層"で調べるとそこには表示されません。インタラクションが有効になっている場合は、ウェブビューの他の場所をクリックできます。 – h3dkandi

0

これを修正するにはかなり醜いハックを使用しています。私は今、別の方法でタブバーを非表示にしています:

if (shouldShow) { 
    self.hidesBottomBarWhenPushed = NO; 
    UIViewController *someView = [[UIViewController alloc] init]; 
    [self.navigationController pushViewController:someView animated:NO]; 
    [self.navigationController popToViewController:self animated:NO]; 

} else if (shouldHide) { 
    self.hidesBottomBarWhenPushed = YES; 
    self.tabBarController.hidesBottomBarWhenPushed = YES; 
    self.navigationController.hidesBottomBarWhenPushed = YES; 
    UIViewController *someView = [[UIViewController alloc] init]; 
    [self.navigationController pushViewController:someView animated:NO]; 
    [self.navigationController popToViewController:self animated:NO]; 
} 

私は自分自身のビューをプッシュすることはできませんので、私はそのランダム表示が必要なのです。

関連する問題