2015-07-01 3 views
2

У меня есть следующая иерархия: Controller.view [tableView, overlayView]. В представлении таблицы есть верхняя вставка из 16 точек с родительского представления через ограничение, наложение - нет.Prolem с точкой преобразования из ячейки таблицы

Внутренний вид содержимого ячейки таблицы У меня есть другой вид 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, чтобы иметь исходные точки равными. Почему конвертация не работает?

ответ

1

Вы должны преобразовать точку в respondersuperview, а не в responder. Измените свою вторую строку следующим образом:

CGPoint origin = [responder.superview convertPoint:responder.frame.origin toView:self]; 
Смежные вопросы