![](/img/trans.png)
[英]How to prevent from clipping the subviews when I set the cornerRadius of a UIView?
[英]Rotating a UIView; How to prevent clipping during rotation?
假设我有一个UIView
,它的标准配置跨越了容器的整个宽度和高度。 就此问题而言,假设其尺寸为320x400。 假设此视图包含的内容可能(通常是)大于其标准尺寸(因此它会滚动浏览内容)。
现在,如果此UIView
具有UIRotationGestureRecognizer
关联的UIRotationGestureRecognizer
,该UIRotationGestureRecognizer
用于通过其transform
属性旋转视图,那么如何确保其帧大小/可绘制区域始终对于其当前方向足够大(“足够大”,我的意思是呈现的内容应始终扩展到原始范围,并且在到达原始范围的边缘之前不被剪切)? 例如,如果我将其旋转90度,则视图需要了解其“宽度”现在最多可能消耗400像素,而其高度则限制为320像素。
请注意,我不想在旋转操作中缩放视图。 由于当前旋转而变得可用的任何“附加”空间都应用于显示其他内容(如果有),而不是简单地以更高的缩放级别显示相同的内容。
您不希望在旋转时出现任何空白。 解决方案是使子视图包含一个背景,该背景的大小足以在旋转期间覆盖整个视口。 我说应该是400 x 400的视图。 该视图可以是contentview的父视图,但这会给您带来一些定位上的麻烦。
比较容易的是在当前视图上添加一个子视图。 将(大)背景放在此子视图上,确保此视图在视图堆栈的底部,并在当前视图上放置clipsToBounds = NO。
请注意,禁用裁剪可能会影响性能,尤其是在视图层次结构变得复杂的情况下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.