16

文档说 的clipsToBounds属性UIView会将绘图剪辑到边界,或者更准确地说,subView不能在superView.

听起来不错,但这在实践中意味着什么?

如果我将其设置为YES,那么我subView将自动仅绘制那些不在superView. 所以它提高了整体性能还是我仍然必须确保我不创建任何不可见的视图,即在一个UIScrollView

4

3 回答 3

25

我认为恰恰相反:打开剪辑会损害性能,因为它必须设置剪辑蒙版。我隐约记得在某处读过这篇文章,但现在找不到了。

于 2009-05-04T16:59:14.007 回答
1

clipsToBounds 的用例更多用于部分位于主视图之外的子视图。例如,我在其父(矩形)UIView 的边缘有一个(圆形)子视图。如果将 clipsToBounds 设置为 YES,则只会显示一半的圆/子视图。如果设置为 NO,则会显示整个圆圈。刚遇到这个,想分享一下。

于 2014-01-03T17:18:08.877 回答
0

如果您知道视图层次结构,那么(可能的)性能影响只是确定性的。如上所述,通常渲染器将使用 GPU 周期来绘制视图,除非层次结构中的某些视图使用drawRect:. 这不会影响 OpenGL ES 应用程序,因为drawRect:在此类应用程序中被省略。

据我了解,与实际计算/绘制/混合整个视图相比,确定和显示剪切区域可能需要更少的周期。从OpenGL ES 2.0 开始,裁剪可以在 GPU 中计算。

于 2012-11-09T00:18:54.827 回答