绘制超出 UIView 的界限

Posted

技术标签:

【中文标题】绘制超出 UIView 的界限【英文标题】:Drawing beyond a UIView's bounds 【发布时间】:2014-07-07 15:45:21 【问题描述】:

我正在尝试使用核心图形在它的 drawRect 方法中围绕 UIView 绘制一个复杂的边框。边框被剪裁,因为它超出了视图的边界。有什么办法可以防止这种剪裁吗?将 clipsToBounds 设置为 NO 不起作用。

【问题讨论】:

@MichaelDeluca,自动布局和CoreGraphics之间的联系到底是什么?上下文具有特定的大小,并且无法在上下文的边界上绘制。 【参考方案1】:

drawRect: 给你一个CGRect。这定义了您可以绘制的区域。就目前而言,您不能在此区域之外绘图。

您必须寻找不同的解决方案来解决您的问题。我建议CALayers,或子视图/超级视图层次结构,也许是边框视图和内容视图。但是不要尝试在drawRect: 中这样做,除非您可以在保持在drawRect: 指定的区域内获得所需的结果。

【讨论】:

以上是关于绘制超出 UIView 的界限的主要内容,如果未能解决你的问题,请参考以下文章

设置平移手势的界限

uiview上的按钮翻转动画超出框架

检测 CGAffineTransformed 视图是不是超出屏幕/UIView 的范围

带有长文本 UILabel 的 UIView 无法显示超出屏幕高度的文本

如何使用自动布局防止 UIButton 超出其父 UIView 的宽度

iOS - 故事板 - 使用自动布局修改超出框架的 UIView