如何将子层与 UIView 一起移动?

Posted

技术标签:

【中文标题】如何将子层与 UIView 一起移动?【英文标题】:How to move sublayers along with the UIView? 【发布时间】:2012-02-07 10:05:02 【问题描述】:

我在其根层上绘制了一个 UIView 和几个 CALayers 作为子层。 现在,当我调整视图框架的大小时。根据 View 的框架,Layers 根本不会移动。

我该怎么办?

我是否必须删除图层并在框架绘制到的新图层上重新绘制它们,或者有更简单的方法吗?

【问题讨论】:

【参考方案1】:

子层应该随着视图移动,但是 CALayers 没有像 UIView 那样的自动调整掩码,所以如果你想让它们随着视图框架拉伸,你需要更新子层的位置。

您可以通过实现视图的layoutSubviews 方法来做到这一点,并将子层更新到它们应该在该方法中的任何位置。

【讨论】:

以上是关于如何将子层与 UIView 一起移动?的主要内容,如果未能解决你的问题,请参考以下文章

将子层添加到 view.layer 会改变框架位置?

将子 UIView 锁定到 topLayoutGuide

UIView 在其 Superview 内移动

移动端JS父层Touch事件用了冒泡,子层onclick事件不生效

如何使用jQuery将子元素从一个父元素移动到另一个父元素[重复]

如何在 Bootstrap 4.1 中悬停时将子菜单下拉项向右移动?