【发布时间】:2019-12-13 09:55:57
【问题描述】:
当您需要渲染常规视图时,使用 UIGraphicsGetImageFromCurrentImageContext() 和各种其他方法(包括 render(in:) 和 drawHierarchy(in: afterScreenUpdates:) 函数)对 UIView 进行快照非常有用。
在尝试绘制缩放的UIView 层次结构时,我无法正常工作。有问题的视图是UIScrollView 的内容和缩放视图。
视图及其超级视图拒绝在快照之前进行任何可以解决缩放问题的转换。结果是快照看起来像:
- A) 一个不幸的裁剪视图,其原点位于左上角(正如在 iOS 上所预期的那样),但随后仅扩展到未转换的视图“边界”。如果视图碰巧没有缩放或缩放变换,这没关系,但这种情况很少发生。
- B) 带有黑色大边框的超大视图,与转换后的视图“框架”相匹配。我假设发生这种情况是因为对缩放视图的框架进行快照时有些奇怪。
TL;DR:在UIView 缩放和缩放后无法对UIView 进行快照/渲染,尽管在快照之前尝试转换或重绘。
编辑:请参阅下面的这种令人沮丧的行为的示例。
【问题讨论】:
标签: ios swift uiview uiscrollview rendering