我有以下层次结构:Controller.view [tableView,overlayView]。表视图从父视图通过约束,叠加视图 - 而不是。
有16个点的顶部插入在表格单元格内容视图中,我有另一个视图responder
,我想在视图overlayView
上显示该图像。
如果我使用此代码(在叠加视图内):
CGRect frame;
CGPoint origin = [responder convertPoint:responder.frame.origin toView:self];
// FIXME origin.y -= 16;
frame.origin = origin;
frame.size = responder.frame.size;
_imageView.frame = frame;
UIGraphicsBeginImageContextWithOptions(responder.bounds.size, NO, 0);
[responder drawViewHierarchyInRect:responder.bounds afterScreenUpdates:YES];
_imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
我从imageView
原点获得了16点偏移responder
,图片不适合原始视图。所以我必须使用带有FIXME标记的线来使原点相等。为什么转换不工作?
答案 0 :(得分:1)
您应该从responder
的{{1}}转换点,而不是superview
本身。将第二行更改为:
responder