Ios 防止UIView在Swift中溢出到SuperView之外

Ios 防止UIView在Swift中溢出到SuperView之外,ios,swift,calayer,cliptobounds,Ios,Swift,Calayer,Cliptobounds,假设有一个UIView(0,0100100),它有两个子视图,一个是(-5,-5,10,10),另一个是(0,95,10,10)。我想让第一个子视图从superView溢出,但不让第二个子视图溢出。UIView中是否有任何属性可以设置为防止UIView溢出其SuperView?或者,实现这一目标的最佳方式是什么 注意:此处坐标的形式为(x、y、宽度、高度) 更新:由于有些人认为这个问题不清楚,让我补充一些要点: 我熟悉UIView的clipToBounds属性,但这将允许剪裁它的所有子视图,但我

假设有一个UIView(0,0100100),它有两个子视图,一个是(-5,-5,10,10),另一个是(0,95,10,10)。我想让第一个子视图从superView溢出,但不让第二个子视图溢出。UIView中是否有任何属性可以设置为防止UIView溢出其SuperView?或者,实现这一目标的最佳方式是什么

注意:此处坐标的形式为(x、y、宽度、高度)

更新:由于有些人认为这个问题不清楚,让我补充一些要点:

  • 我熟悉UIView的
    clipToBounds
    属性,但这将允许剪裁它的所有子视图,但我的问题是反之亦然
  • 我只是想知道UIView中是否有任何属性可以防止UIView的superView溢出
  • 为了说明同样的问题,我刚刚给出了一个例子,其中将clipToBounds设置为superView将不起作用,因为一个子视图需要从其父视图溢出

  • 如果仍然不清楚,请在注释中告诉我。

    有一个名为
    clipsToBounds
    的属性,但它可以反过来工作-它告诉
    UIView
    它的所有子视图都被剪裁为不在自己的边界之外绘制

    因此,在您的情况下,如果您不希望有一个视图超出范围,也不希望有一个超出范围,那么您将需要额外的(透明)视图,该视图将具有与superview相同的rect,但将剪裁子视图

    然后将剪切子视图添加为该新透明层的子视图,另一个子视图应该是superview的直接子视图


    希望这能有所帮助:)

    有一个名为
    clipstobunds
    的属性,但它的工作原理正好相反-它告诉
    UIView
    它的所有子视图都被剪裁为不在自己的边界之外绘制

    因此,在您的情况下,如果您不希望有一个视图超出范围,也不希望有一个超出范围,那么您将需要额外的(透明)视图,该视图将具有与superview相同的rect,但将剪裁子视图

    然后将剪切子视图添加为该新透明层的子视图,另一个子视图应该是superview的直接子视图


    希望这有帮助:)

    您可以将UIView的clipToBounds属性设置为true。将clipToBounds设置为“是”时,其子视图不会溢出

    您可以将UIView的clipToBounds属性设置为true。将clipToBounds设置为“是”时,其子视图不会溢出

    但这将剪裁两个子视图。请重新阅读问题..但这将剪辑两个子视图。请再次阅读问题。感谢您的回答,但添加带有剪贴簿的新子视图可能是一个明显的解决方案,但如果我们有许多子视图,其中一些溢出,而另一些不是来自它的superView,则可能需要多个新的透明UIView。我已经更新了同样的问题,希望能有所帮助:)您只需要一个透明的UIView,其中包含到边界的剪辑,您可以将所有不需要溢出的子视图放在其中。将溢出的所有内容都将作为直接子项出现在原始superview中。据我所知,没有控制父行为的属性,如果您仔细考虑,应该有这样的属性:)谢谢您的回复,但是添加带有剪贴簿的新子视图可以明显解决同样的问题,但是,如果我们有许多子视图,其中有些是溢出的,有些不是来自它的superView,那么可能需要多个新的透明UIView。我已经更新了同样的问题,希望能有所帮助:)您只需要一个透明的UIView,其中包含到边界的剪辑,您可以将所有不需要溢出的子视图放在其中。将溢出的所有内容都将作为直接子项出现在原始superview中。据我所知,没有控制父行为的属性,如果您仔细考虑,应该有这样的属性:)