我有以下层次结构:Controller.view [tableView,overlayView]。表格 View 通过约束从父 View 具有 16 个点的顶部插入,覆盖 View - 不是。
在表格单元格内容 View 中,我有另一个 View responder
,我想在 View overlayView
上显示它的图像。
如果我使用此代码(在覆盖 View 内):
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
与 responder
原点偏移 16 点,并且图像不适合原始 View 。所以我必须使用带有 FIXME 标记的线来使原点相等。为什么转换不起作用?
您应该从 responder
的 superview
转换点,而不是 responder
本身。将您的第二行更改为:
CGPoint origin = [responder.superview convertPoint:responder.frame.origin toView:self];
关于ios - 从表格单元格转换点的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31171956/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |