回答:
私のスーパービューが両側で10単位のボックスであり、私のサブビューが20単位の幅で、にclipsToBounds
設定されているYES
場合、スーパービューの境界内に収まるサブビューの部分のみが表示されます。それ以外の場合、clipsToBounds
がに設定されているとNO
、サブビュー全体が表示されます。スーパービューの外側の部分も表示されます(まだ画面上にあると想定しています)。
視覚的な例として、ストーリーボードに設定された次のビューを検討してください。
これは白でUIView
、単純な「1」または「2」ので、私はこれらを議論することができることのいずれかでコーナーを左上にあるラベル、view1
またはview2
ます。また、黒のビューは白のビューと同じサイズですが、原点は白のビューの中央にあります。
ビューコントローラーのviewDidLoad
メソッドには、次のコードがあります。
- (void)viewDidLoad {
[super viewDidLoad];
self.view1.clipsToBounds = YES;
self.view2.clipsToBounds = NO;
}
override func viewDidLoad() {
super.viewDidLoad()
self.view1.clipsToBounds = true
self.view2.clipsToBounds = false
}
コードを実行してシミュレーターまたはデバイスを確認すると、次の結果が得られます。
したがって、これらのビューは同じように設定されているにもかかわらず(を除くclipsToBounds
)、見た目が異なります。これが何をするかclipsToBounds
です。に設定YES
すると上位の結果が提供され、に設定するとNO
下位の結果が提供されます。
ビュー階層をデバッグすると、両方のブラックボックスが実際に白いビューの境界を越えて拡張されていることがより明確にわかりますが、ビュー2のみがアプリが実際に実行されているときにこれを示しています。
UITextView
場合、シャドウが表示されないのはなぜですか。?であれば、問題なく動作しますclipsToBounds
true
false