Как найти координаты UICollectionViewCell относительно окна приложения

Можно ли перевести координаты UICollectionViewCell's из относительного относительно UICollectionView в соответствие с superview ? До сих пор я не смог перевести координаты UICollectionViewCell's при касании к superview . Вот что я пробовал до сих пор:

 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionViewCell" forIndexPath:indexPath]; CGRect frame = CGRectMake(0.0, 0.0, cell.frame.size.width, cell.frame.size.height); frame.origin = [cell convertPoint:cell.frame.origin toView:self.view]; } 

Я хотел бы создать новый кадр, который исходит из позиции ячейки в представлении, а не в UICollectionView . Любая помощь будет большой благодарностью.

3 Solutions collect form web for “Как найти координаты UICollectionViewCell относительно окна приложения”

Этот ответ очень поздний, но, надеюсь, это поможет кому-то. Дэн, у тебя есть правильная идея, но это еще проще, чем то, что у тебя есть. Просто замените

 CGRect frame = CGRectMake(0.0, 0.0, cell.frame.size.width, cell.frame.size.height); frame.origin = [cell convertPoint:cell.frame.origin toView:self.view]; 

с

 CGRect frame = [collectionView convertRect:cell.frame toView:self.view]; 

Проблема заключалась в том, что вы вызывали метод convert в ячейке, а не в collectionView.

Если я правильно вас понимаю, я думаю, проблема в том, что сначала нужно исправить contentOffset , что легко сделать, поскольку UICollectionView является подклассом UIScrollView .

 CGRect frame = CGRectMake(0.0, 0.0, cell.frame.size.width, cell.frame.size.height); CGPoint correctedOffset = CGPointMake(cell.frame.origin.x - collectionView.contentOffset.x, cell.frame.origin.y - collectionView.contentOffset.y); frame.origin = [cell convertPoint:correctedOffset toView:self.view]; 

Я тестировал это в одном из своих демонстрационных приложений UICollectionView и, похоже, работает. Попробуйте.

На всякий случай, если кто-то ищет это, вот как это можно сделать в Swift:

 let cellFrameInSuperview = collectionView.convertRect(collectionView.cellForItemAtIndexPath(indexPath)!.frame, toView: view) 
  • Xcode 5: UITextView Attributed Text не работает в раскадровке
  • Не удалось запустить процесс Xcode 6: тайм-аут пытается запустить приложение
  • Неизвестная ошибка произошла, когда я пытался использовать iPad для разработки
  • Не удалось установить приложение. Эта операция не поддерживается
  • Ошибка Xcode при попытке запустить проект из-за LLDB
  • Ошибка компоновщика в iOS (дубликаты символов для архитектуры x86_64)
  • Проект Xcode iOS показывает только «Мой Mac 64-бит», но не симулятор или устройство
  • void (^) (NSData *), что это значит?
  • Отладка .xccrashpoint
  • Приложение не выполняется в Xcode после успешной сборки
  • Как подключиться к веб-службе с помощью NSURLSession с помощью методов Delegate?
  • Interesting Posts

    Получение ошибки в подключении itunes

    iOS: Нарисуйте текст в UIView с помощью LineWidth 1px

    Поврежденные аудио файлы WAV в iOS – почему?

    несколько / необязательных сегментов из ячейки таблицы UITableViewController

    Ошибка входа в локальную сеть SDK SDK

    SpriteKit: передача данных между сценами

    Как отобразить символ-заменитель в UILabel?

    Сбой при запуске, потому что приложение слишком долго – тупик – брелок

    Производительность: отношения основных данных становятся ошибочными после назначения

    Память от AVAudioPlayer в ivar не используется повторно

    iOS UIScrollView отменит настройку UIButton на прокрутку

    Модифицирование представления контроллера навигационного представления в UITabBarController с сегментированным контролем

    Имитировать универсальное гравитирование для двух узлов Sprite Kit

    Доступ к вложенному элементу с помощью NSIndexPath

    iOS симуляторы не работают за прокси-сервером, так как обновлены до Xcode 8.2.1?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.