我有一堆水平UITableView放在UIViewController1中。我想找到被点击的UITableViewCell的位置,我想根据UIViewController1得到位置。所以这就是我在didSelectRowAtIndexPath中所做的:
MyCell *cell = (MyCell *)[tableView cellForRowAtIndexPath:indexPath];
UIView *animatedView = [[UIView alloc] initWithFrame:cell.frame];
[animatedView setFrame:[animatedView convertRect:animatedView.frame toView:self.newsRackController.view]];
然而,似乎这不能正确转换它。我做错了什么?
答案 0 :(得分:8)
您需要从UITableView的视图转换UITableViewCell的CGRect,然后再将其转换为视图控制器视图。
但不是全部,也许你可以使用UITableView的方法
- (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath
获取此CGRect并将其转换为您的UIViewController的视图。
答案 1 :(得分:1)
这是因为animatedView
不属于任何父母,而您使用frame
作为bounds
。您应首先找到框架并相应地初始化animatedView
。
MyCell *cell = (MyCell *)[tableView cellForRowAtIndexPath:indexPath];
CGRect animatedViewFrame = [tableView convertRect:cell.frame toView:self.newsRackController.view];
UIView *animatedView = [[UIView alloc] initWithFrame:animatedViewFrame];