2016-10-14 29 views
-1
UIView *sourceView = self.sourceImagesContainerView.subviews[self.currentImageIndex]; 
UIView *parentView = [self getParsentView:sourceView]; 
CGRect rect = [sourceView.superview convertRect:sourceView.frame toView:parentView]; 
NSLog(@"%@",NSStringFromCGRect(rect)); 

中的tableView用于获取的ImageView其他视图的位置,但是当我滑的tableView,矩形是错误的。- (的CGRect)convertRect:(的CGRect)RECT toView:(可为空的UIView *)视图

我不知道该如何处理。

+1

多么可怕的称号! – Biffen

+2

欢迎来到SO。请看[旅游](http://stackoverflow.com/tour)。您可能还想检查[我可以询问哪些主题](http://stackoverflow.com/help/on-topic),以及[如何提出一个好问题](http://stackoverflow.com/help/)如何提问)和[完美问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/),以及如何创建[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。发布您尝试过的代码以及收到的错误。尽可能具体,因为它会导致更好的答案。 –

回答

0

除非您准备减去contentOffset,否则不能使用tableView作为此转换的父级。

UIView *sourceView = self.sourceImagesContainerView.subviews[self.currentImageIndex]; 
UITableView *parentView = self.tableView; 
CGRect rect = [sourceView.superview convertRect:sourceView.frame toView:parentView]; 
rect = CGRectOffset(rect, 0-parentView.contentOffset.x, 0-parentView.contentOffset.y); 
NSLog(@"%@",NSStringFromCGRect(rect)); 

最好使用非滚动父:

UIView *sourceView = self.sourceImagesContainerView.subviews[self.currentImageIndex]; 
UIView *parentView = self.navigationController.view; 
CGRect rect = [sourceView.superview convertRect:sourceView.frame toView:parentView]; 
NSLog(@"%@",NSStringFromCGRect(rect));