What' s порождение задержки моих переходов?

Один из моих взглядов замерзает в течение нескольких секунд, когда я выявляю кнопку "Назад".

Кроме того, когда я выявляю на одном из пунктов в этом представлении, он показывает всплывающее окно (обычай, не UIPopoverController ). Это всплывающее окно кажется довольно быстрым, но когда я "щелкаю" всплывающим окном, чтобы видеть, что это - задняя сторона, та же самая длительная задержка происходит.

Я подозреваю, что причина имеет некоторое отношение к сложности представления. Как вы видите в снимке экрана ниже, это - представление коллекции, у этого есть фон, и некоторые подвзгляды вращаются (UIViewEdgeAntialiasing идет).

The white bars that hide the text are not part of the app

Я использовал Профилировщика Времени в Инструментах, чтобы выяснить то, что продолжается, но я застреваю.

The selected time period is when I press the back button and the freeze occurs

Я не вижу ничего полезного, если я не отсеиваю, "Скрывают Системные библиотеки":

Include system libraries

Если я смотрю на имена методов, я думаю, что они связаны с авто расположением. Это предполагает, что пытается отдать что-то во время перехода. Но методы, такие как cellForItemAtIndexPath не называют.

Есть также версия iPhone этого приложения, где я не испытываю эту проблему вообще. Это использует tableview в земельном участке collectionview. У этого также есть фон и вращаемые картины.

Я провел эти измерения, используя симулятор; на моем iPad Mini ситуация хуже; это может взять за 20 секунд до запусков анимации.

Обновление - Вещи я попробовал благодаря вашим ответам:

  • выключает UIViewEdgeAntialiasing : никакой эффект на работу
1
nl ja de

2 ответы

Вращение было плохим парнем здесь. Каждый у UICollectionViewCell есть UIView , поскольку контейнерным представлением и в этом является UIImageView . Я вращаю его как это:

container.transform = CGAffineTransformMakeRotation (M_PI * someRandomFloat);

Удалите ту линию, и все мгновенное.

Я использую ту же самую технику на iPhone, но по-видимому этот вид вращения оказывает меньше исполнительного влияния в UITableViewCell , чем в UICollectionViewCell .

Я пытался подклассифицировать UICollectionViewFlowLayout , чтобы вращать саму клетку в земельном участке одного подпредставления. К сожалению, это вызывает подобную исполнительную проблему.

0
добавлено

Я думаю, что это могло бы произойти из-за флага UIViewEdgeAntialiasing. Кажется, что у вашей главной точки зрения (та с большим количеством немного вращаемых картин) есть много antialiased краев, и следовательно очень налоговое на GPU iPad. То, что работа рисунка замедляется, когда ваша легкая сдоба вращается (т.е. когда фон показывает снова) дает эту некоторую веру.

Попытайтесь выключить его и посмотрите, улучшается ли работа. Как это похоже?

0
добавлено
Спасибо, но к сожалению который не улучшил работу. Это просто привело к зубчатым краям. Но I' ll пытаются вынуть некоторые из других "специальных эффектов", чтобы видеть, помогает ли это.
добавлено автор Sjors Provoost, источник
Оказывается, что это было вращение, I' ll объясняют в моем собственном ответе.
добавлено автор Sjors Provoost, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.