Answers:
如果我的超级视图是一个每侧测量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
,则效果很好