web-dev-qa-db-ja.com

テーブルビューの座標空間でテーブルビューセルのフレームを取得するにはどうすればよいですか?

多数のセルが含まれているテーブルビューがあります。セルのフレームを取得します。スーパービューの座標空間ではなく、テーブルビューの座標空間で取得します。

写真はおそらくこれをよりよく説明するでしょう

enter image description here

赤い長方形が見えますか?それがテーブルセルのフレームです。青い長方形はテーブルビューのフレームです。青い長方形に関連する赤い長方形を取得したいのですが。

frameUITableViewCellプロパティを使用しようとしました。ただし、(0、0、320、44)を返すため、機能しません。明らかにセルが画面の上部にないため、Y値はゼロであってはなりません。

ビューの階層によれば、これは意図された動作です。テーブルセルのスーパービューは明らかにテーブルビューではなくUITableViewWrapperViewであるためです。

enter image description here

テーブルビューはこれです:

enter image description here

それで、テーブルビューの座標空間でテーブルビューセルのフレームを表すCGRectを取得できるメソッド/プロパティはありますか?

座標空間のCGRectを別の空間に変換できる関数があると思います。しかし、その名前と使い方を忘れてしまいました。この状況で役立つかどうかはわかりません。

17
Sweeper

以下のコードを使用してください

let rectOfCell= tableView.rectForRowAtIndexPath(indexPath)
let rectOfCellInSuperview = tableView.convertRect(rectOfCell, toView: tableView.superview)
31
Jasmeet Kaur