2016-10-01 8 views
1

UIViewに子以外の子供を非表示にしたいが、私はそれを行う方法がわからない。UIViewで子供以外のUIViewを非表示にする

具体的には、UITableViewです。各UITableViewCellには別のビューがあります(wrapperViewというラッパービュー)。ラッパーには、IBで設定されたラベルとプログラムで作成されたラベルがあります。私はラッパーの下のボタンを明らかにするカスタムスライド機構を作成しました(標準のものと同じように)。

プログラムで作成されたラベルは、サブビューをクリップするため、ラッパーの境界を超えないようにします。問題は、IBで作成されたラベルの問題です。それらはcontentViewのサブビューです。

どうすれば解決できますか? UIViewは、同じレベル(親でも子供でもない)で他のビューをクリップする方法はありますか?またはラベルをラッパービューに「転送」しますか?

+0

「UIViewが兄弟ビューをクリップする方法はありますか?」いいえ、ビューを整理して、好きなように機能します。プログラムで作成されたラベルに関しては、あなたの問題は信じられないほど簡単です。他のUIViewの子を作成する必要があります。これは簡単です。 – Fattie

答えて

2

あなたが何を求めているかは完全にはっきりしていません。ビューはそのフレームの四角形内にあるが、サブビューではないビューではなく、そのサブビューのみをクリップします。

ビューオブジェクトをあるビュー階層から別のビュー階層に移動する場合は、addSubview(_:)を使用します。それは自動的に現在の親ビューから削除されます。アップルのドキュメントを引用するには:

ビューにはスーパービューが1つしかない場合があります。ビューにすでにスーパービューがあり、そのビューが受信者ではない の場合、このメソッドは受信者を新しいスーパービューにする前に、以前の スーパービューを削除します。

+0

私の推測では、OPは単に理解できません。つまり、「プログラムで」ビューを作成すると、その新しいビューの親スーパービューを設定できます。 – Fattie

+0

私は概念を非常にはっきりと理解しており、ビューはサブビューをクリップすることを知っています。私はそれがサブビューではない他のビューをクリップする方法を求めていました。あなたの答え、ダンカンありがとう!それは完全に動作します。 – Lawrence413

関連する問題