Я хочу получить позицию UITableVIewCell относительно экрана, а не относительно таблицы. Итак, если я просматриваю таблицу, позиция обновляется.Как получить позицию tableviewcell после прокрутки стола.
ответ
Вы должны использовать два шага для достижения этой цели:
- Получить CGRect информацию для выбранной ячейки/или нижнего колонтитула с помощью одного из них методы UITableView:
- (CGRect)rectForHeaderInSection:(NSInteger)section; - (CGRect)rectForFooterInSection:(NSInteger)section; - (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath;
2. Преобразовать CGRect на вид контейнера таблицы с помощью convertRect метод UITableView «s. Например. чтобы получить текущую позицию первого заголовка можно использовать этот код:
CGRect rect = [mytable convertRect:[mytable rectForHeaderInSection:0] toView:[mytable superview]];
Если вы хотите, чтобы эти выше динамически вы можете захотеть включить этот код в метод делегата UITableView в:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView_ {.....
One пример того, что я сделал с использованием аналогичных методов находится в GitHub - как сделать строку заголовка таблицы исправлено:
https://github.com/codedad/SO_Fixed_TableHeader_iOS
Надеюсь, это вам поможет!
Спасибо! Это помогло ... – Bertges
Это, похоже, не учитывает contentOffset. Если в методе didScroll я записываю прямоугольник конкретной ячейки, он не изменяется при прокрутке –
Вы должны получить позицию от ребенка к родителю:
float x = cell.frame.origin.x;
float y = cell.frame.origin.y;
UIView* parent = cell.parent;
while(parent != nil)
{
x += parent.frame.origin.x;
y += parent.frame.origin.y;
parent = parent.parent;
}
Используйте метод -[UITableView rectForRowAtIndexPath:]
. Имейте в виду, что если вы попытаетесь получить это, когда ячейка выключена, вы получите неожиданные результаты. Затем вы можете преобразовать его в вид контроллера вашего представления (который, я думаю, это то, что вы подразумеваете под экраном) с помощью метода -[UIView convertRect:toView:]
.
- 1. UITableViewCellAccessoryCheckmark исчезнет после прокрутки стола.
- 2. Ввод текстаField в TableViewCell исчез после прокрутки
- 3. Как получить позицию RecyclerView для прокрутки
- 4. Как получить позицию прокрутки с помощью Javascript?
- 5. Как получить позицию прокрутки из Microsoft Word
- 6. Как получить позицию прокрутки страниц (ось Y)
- 7. Как получить последнюю позицию прокрутки, scrollview
- 8. Как получить текущую позицию прокрутки divs?
- 9. Как получить позицию прокрутки из Microsoft Excel
- 10. Как получить точную позицию прокрутки в списке?
- 11. ListView получает позицию прокрутки?
- 12. Восстановить позицию прокрутки после закрытия мобильного меню
- 13. Сохранить позицию прокрутки после опции (Onclick)
- 14. пейджер (меньше) - получить текущую позицию прокрутки?
- 15. Восстановить позицию прокрутки QWebView после setHtml()
- 16. Сохранить позицию прокрутки после DOM Манипуляции - JQuery
- 17. Почему адаптер ListView потерял позицию после прокрутки?
- 18. Получить позицию ячейки UICollectionView после scrollToItemAtIndexPath
- 19. Удаление строк в TableViewController после их прокрутки в TableViewCell
- 20. Как получить положение прокрутки после остановки прокрутки?
- 21. Как сохранить всю позицию страницы прокрутки после асинхронного постбэк
- 22. Получить позицию LinearLayout в макете прокрутки android
- 23. Возобновить предыдущую позицию прокрутки
- 24. Вертикальная полоса прокрутки стола
- 25. Получить сохраненную позицию прокрутки по щелчку
- 26. Получить позицию прокрутки с помощью jquery
- 27. Получить позицию прокрутки текстового поля WPF
- 28. Самостоятельный размер стола TableView Self Selfizing TableViewCell
- 29. Получить позицию divs после translate3d
- 30. Как получить позицию прокрутки элемента HTML в таблице?
Непонятно, о чем вы просите, потому что вы не указали (1), в какое время вы хотите получить позицию, (2) положение той части ячейки, которую вы хотели бы получить, и (3), если ориентация дисплея играет какую-либо роль в ответе, который вы хотите получить. – dasblinkenlight
В целом, когда вы пытаетесь сделать что-то, что трудно достичь, вероятность того, что вы делаете что-то неправильно, очень высока. У вас может быть больше шансов решить проблему, если вы объясните фактическую проблему, которую пытаетесь решить. – dasblinkenlight