3

UIViewController1内に配置された水平UITableViewの束があります。タップされている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]];

ただし、これは正しく変換されていないようです。私は何を間違っていますか?

4

2 に答える 2

8

UITableViewCell の CGRect を UITableView のビューから変換してから、ビュー コントローラー ビューに再度変換する必要があります。

しかし、その代わりに、おそらく UITableView のメソッドを使用することができます

- (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath

この CGRect を取得し、UIViewController のビューに変換します。

于 2012-09-05T00:28:39.497 に答える
1

animatedView親に属しておらず、frameasを使用しているためboundsです。最初にフレームを見つけて、それに応じて初期化する必要がありますanimatedView

MyCell *cell = (MyCell *)[tableView cellForRowAtIndexPath:indexPath];
CGRect animatedViewFrame = [tableView convertRect:cell.frame toView:self.newsRackController.view];
UIView *animatedView = [[UIView alloc] initWithFrame:animatedViewFrame];
于 2012-09-05T00:35:07.040 に答える