UIView 越界时隐藏子视图

Posted

技术标签:

【中文标题】UIView 越界时隐藏子视图【英文标题】:UIView hide children views when out of bounds 【发布时间】:2011-07-22 08:17:31 【问题描述】:

我有一个视图,比如说 100x100。它有一组 uiviews 作为子视图:比如说 30x30

如果子视图具有左上角坐标:(90,90) - 我希望只看到此子视图的一部分。但我仍然可以看到整个区域——即使它超出了父母的范围

问题是如何让 uiview 只显示子视图的那些部分,它们在原始范围内?

谢谢

【问题讨论】:

打开剪辑绑定会降低性能吗?这个问题还有其他可能的答案吗? 【参考方案1】:

将父视图的clipsToBounds 属性设置为YES

以编程方式:view.clipsToBounds=YES;

通过界面生成器:Click the view->Attributes Inspector->Check Clip to Bounds

【讨论】:

【参考方案2】:

文档说 UIView 的 clipsToBounds 属性会将绘图裁剪到边界,或者更准确地说,子视图不能在父视图的边界之外绘制。

更多信息请阅读 SO 帖子

UIView clipsToBounds property: Does it improve performance?

【讨论】:

【参考方案3】:

我认为您想在父视图上启用“剪辑子视图”。

【讨论】:

【参考方案4】:

确实,从情节提要中,勾选父 UIView 的“剪辑子视图”复选框。这就是它对我的工作方式。

【讨论】:

以上是关于UIView 越界时隐藏子视图的主要内容,如果未能解决你的问题,请参考以下文章

IOS、UIView、检测子视图隐藏状态变化

“隐藏”具有自动布局子视图的 UIView

自动布局:如何隐藏包含子视图的 UIView?

UIView 子视图不平滑动画

在隐藏的 UIView 中接收触摸事件?

隐藏一个 UIView 并显示另一个