2016-10-14 60 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));