- (CGRect)convertRect:(CGRect)rect toView :(可空的UIView *)视图

时间:2016-10-14 08:57:26

标签: objective-c uitableview uiview

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时,rect是错误的。

我不知道如何处理这件事。

1 个答案:

答案 0 :(得分: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));