首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clipsToBounds是如何工作的?

clipsToBounds是如何工作的?
EN

Stack Overflow用户
提问于 2013-12-08 10:42:36
回答 1查看 77.3K关注 0票数 120

我想知道如何使用

属性

..。

官方文档如下所述:

属性

一个布尔值,它确定是否将子视图限制在视图的边界内。

讨论

将此值设置为

导致子视图被剪裁到接收器的边界。如果设置为

,其帧延伸到接收器的可见边界之外的子视图不会被裁剪。默认值为

..。

但我不清楚这到底是什么意思。我应该如何使用

什么?将此属性设置为的后果是什么

确切地说?或转到

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-08 11:14:42

如果我的superview是一个两边各有10个单位的盒子,而我的子视图有20个单位宽,

设置为

,我将只看到适合superview边界的那一部分子视图。否则,如果

设置为

,我会看到整个子视图,甚至是superview之外的部分(假设我们还在屏幕上)。

作为一个可视示例,请考虑在情节提要上设置的以下视图:

这是白色的

,在左上角有一个带有简单的"1“或"2”的标签,以便我可以将它们讨论为

或者

..。此外,黑色视图与白色视图的大小相同,但其原点位于白色视图的中心。

在视图控制器的

方法,我们有以下代码:

Objective-C:

代码语言:javascript
复制
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view1.clipsToBounds = YES;
    self.view2.clipsToBounds = NO;
}

Swift:

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()
    self.view1.clipsToBounds = true
    self.view2.clipsToBounds = false
}

当我们在模拟器或设备上运行代码并查看时,我们会得到以下结果:

因此,尽管这些视图的设置是相同的(除了

),它们看起来不同。这就是

确实如此。将其设置为

将提供最高结果,同时将其设置为

提供底部结果。

如果我们调试视图层次结构,我们可以更清楚地看到,两个黑盒实际上都延伸到了白色视图的边界之外,但只有视图2在应用程序实际运行时显示了这一点:

票数 319
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20449256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档