Я действительно столкнулся с такой же проблемой при попытке расширить ячейку до полного размера tableView.Запрашивать рамку ячейки и использовать ее вне табличного представления не так просто, как я думал.Тем не менее, я нашел решение после некоторых прямых вопросов на г-на.Google.
Этот первый метод фактически дает кадр ячейки с точки зрения tableView.
CGRect rectInTableView = [myTableView rectForRowAtIndexPath:someIndexPath];
Это полезно, но не полная история (по крайней мере, не длямне).Возможно, вы захотите перевести этот прямоугольник в представление, если оно действительно имеет значение, чтобы иметь этот прямоугольник.
Этот второй метод преобразует этот прямоугольник в перспективу вида, в котором вы хотите разместить всплывающее окно.В моем случае [myTableView superView]
, но это может быть любой видимый вид.
CGRect rectInSuperview = [myTableView convertRect:rectInTableView toView:someView];
Этот rectInSuperView, вероятно, то, что вы ищете.Это решило многие мои проблемы с cellFrame, и это также может помочь вам.
Стрелка всегда будет указывать на середину прямоугольника, поэтому, если ваш прямоугольник не работает нормально, «взломав» прямоугольник, чтобы сделатьэто не самый лучший способ решить эту проблему.
Надеюсь, это решение подойдет и вам.И если не стесняйтесь, оставьте комментарий, и я посмотрю, смогу ли я помочь вам в дальнейшем.