2017-05-31 10 views
0

サブビューと削除ビューの違いを教えてください。ユーザーがアクセスできないボタンが必要です。ユーザーがそのボタンにアクセスできないことを確認するための方が優れていますか?これらの2つの方法の違いは何ですか?そして、ここで述べた2つ以外のこれを行うためのより良い方法がありますか?Ishiddenとサブビューからの削除

+0

キーワードと同じくらい簡単です - > #1隠れているということは、ビューはそこにあるがデバイスの画面には表示されないことを意味します。 (isHidden = false) #2削除したビューは、VCビューのサブビューのスタックから消去されます これは役に立ちます。 ありがとう –

答えて

2

簡単な式は「あなたが将来的に表示/サブビューを必要としない場合は、単にremoveFromSuperViewそう隠すを表示/サブビューを表示します。」です

どれが良いですか?あなたの要求に依存します。ほとんどの場合、イベントが発生したときに再度表示する必要がある場合は、ビューを非表示にする方がよいでしょう。ここで

あなたは違いを行く:

isHidden:

隠されたビューは、その窓から消え、入力 イベントを受信しません。しかし、それはスーパービューのサブビューのリストに残っており、 はいつものように自動サイズ調整に参加します。サブビューを含むビューを非表示にすると、 これらのサブビューとビューの子孫を隠す効果があります( )。この影響は暗黙的であり、受信者の子孫の隠れた状態を変更しません。 ウィンドウの現在の最初のレスポンダであるビューを非表示にすると、ビューの次の有効なキービュー が新しい最初のレスポンダになります。

removeFromSuperView:

は、スーパーその窓からの景色のリンクを解除し、レスポンダチェーンから を除去します。ビューのスーパービューがnilでない場合、 スーパービューはビューを解放します。このメソッドを呼び出すと、削除するビューを参照する の制約、または削除するビューのサブツリーのいずれかのビューが参照される が削除されます。

0

isHiddenは、ボタンを隠すだけで、必要に応じて表示することができます。 remove from subViewを使用する場合は、基本的にメモリから削除しています。この場合、そのボタンを表示するには、新しいボタンをインスタンス化または作成する必要があります。アクセスできないようにするには、isEnabledプロパティをfalseに設定することもできます。このようにしてボタンは表示されますが、使用できなくなります。

関連する問題