2017-09-15 9 views
0

私はUIViewを隠そうとしていますが、これまでのところ何もできません。 UIViewはUITableViewの一番下にあり、その内部にはセルとしてありません。これまでに試したことは次のとおりです。UIViewを完全に隠すことができません

self.viContainerLocation.hidden = YES; 
self.viContainerLocation.alpha=0.0; 

CGRect Conframe = self.viContainerLocation.frame; 
Conframe.size.height = self.view.bounds.size.height; 
self.viContainerLocation.frame = Conframe; 

self.tableView.translatesAutoresizingMaskIntoConstraints=NO; 

__block CGRect frame=self.tableView.frame; 
frame.size.height= self.view.frame.size.height-frame.origin.y; 
frame.size.width=self.view.frame.size.width; 
self.tableView.frame=frame; 

viContainerLocationは私が隠そうとしているUIViewです。上記のコードは、UIView内のすべての要素を非表示にしますが、UIViewの寸法に空白が残ります。

[UIView transitionWithView:self.viContainerLocation 
duration:0.0 
options:UIViewAnimationOptionTransitionCrossDissolve 
animations:^{ } 
completion:^(BOOL finish){ 
__block CGRect frame=self.tableView.frame; 
frame.size.height= self.view.frame.size.height-frame.origin.y; 
frame.size.width=self.view.frame.size.width; 
self.tableView.frame=frame; 
}]; 

しかし、ホワイトスペースは、第二の割合で表示されます。このコードを使用して、それが良い見ていない:私はこのコードを使用するとき、私は理解していない理由 は、viContainerLocationが非表示になります。

どのように私は最初から離れて行くことができますか?

+0

コード削除するようにしてください "NO = self.tableView.translatesAutoresizingMaskIntoConstraintsを;" –

+0

乞食の代わりに 'self.viContainerLocation.hidden = YES;'を最後に設定してみてください –

答えて

2

あなたは何かを誤解しています。

UIViewを隠すと、このビューが占有する領域は引き続き表示されます。 あなたのテーブルビューが不足しているスペースを埋めるようにしたい場合、最も速い方法はテーブルビューとビューをUIStackViewに入れておくことです。

UIStackViewには、サブビューをisHidden=trueに設定すると、ビューが削除され、他のビューが左側の領域に表示されます。ここ

もっとに関する情報:https://developer.apple.com/documentation/uikit/uistackview

関連する問題