多数のセルが含まれているテーブルビューがあります。セルのフレームを取得します。スーパービューの座標空間ではなく、テーブルビューの座標空間で取得します。
写真はおそらくこれをよりよく説明するでしょう
赤い長方形が見えますか?それがテーブルセルのフレームです。青い長方形はテーブルビューのフレームです。青い長方形に関連する赤い長方形を取得したいのですが。
frame
のUITableViewCell
プロパティを使用しようとしました。ただし、(0、0、320、44)を返すため、機能しません。明らかにセルが画面の上部にないため、Y値はゼロであってはなりません。
ビューの階層によれば、これは意図された動作です。テーブルセルのスーパービューは明らかにテーブルビューではなくUITableViewWrapperView
であるためです。
テーブルビューはこれです:
それで、テーブルビューの座標空間でテーブルビューセルのフレームを表すCGRect
を取得できるメソッド/プロパティはありますか?
座標空間のCGRect
を別の空間に変換できる関数があると思います。しかし、その名前と使い方を忘れてしまいました。この状況で役立つかどうかはわかりません。
以下のコードを使用してください
let rectOfCell= tableView.rectForRowAtIndexPath(indexPath)
let rectOfCellInSuperview = tableView.convertRect(rectOfCell, toView: tableView.superview)