【发布时间】:2017-12-20 08:43:29
【问题描述】:
我直接在视图层上画了一个圆圈,设备旋转看起来很完美。
绘图发生在func draw(_ rect: CGRect) 方法中。
然后我在一个子层上画了一个圆圈,并在 init 方法中将它添加到视图中。
我在func draw(_ rect: CGRect) 方法中更新了子层的框架。
在我看来,有时子层会在设备旋转完成之前更新。 因此下面的第一张图片。
让这个看起来更好一点的快速修复是剪辑子视图层。 这样圆圈就不会流血到主视图(橙色视图)。
虽然这不能解决主要问题。 我不知道为什么添加子层会导致此问题。
我也在超级视图的draw方法中绘制子层的内容。橙色视图不是超级视图,超级视图是中间的矩形
轮换期间
注意:我没有添加示例代码,因为我看到的所有示例都有相同的问题。 其他人通过硬编码视图的大小来解决这个问题,因此旋转不会调整视图的大小,旋转也不会导致这种情况。 他们还倾向于将视图锁定为纵向模式。
不过,如果需要示例代码,我可以创建一个简单的示例。
【问题讨论】:
-
你试过在layoutSubview方法中画你的图层吗?
-
你能提供一个简单的例子吗? @3366784
-
我找到了一篇很棒的文章,里面有示例代码,看看我的回答。
标签: ios swift core-graphics calayer