У меня проблема с производительностью моего приложения для iPad ..
Для разработки я использую MonoDevelop, который занимается сборкой мусора. Тем не менее, мои вопросы довольно общие, я бы сказал.
ОК, я использую TabBarController с 5 NavigationController. Внутри контроллеров навигации есть несколько контроллеров, чьи представления являются TableViews или ScrollViews. Следующий ребенок всегда просто обычный вид.
У меня есть несколько вопросов:
1) TableViews никогда не прокручиваются плавно. У меня есть некоторая альфа-прозрачность, но, поскольку я делал свою графику в Photoshop, а не программно, эта прозрачность не должна вызывать особых проблем. Неважно, есть ли у меня несколько или много результатов в таблице.
С другой стороны, у меня есть ScrollView, который служит той же цели, то есть быть таблицей с другим макетом, а кнопки имеют прозрачность, созданную в Photoshop. Работает отлично.
Для таблиц я применил DequeueReusableCell()
, который работает нормально (я вижу, что использование памяти не увеличивается после прокрутки). Так почему таблицы прокручиваются так резко?
2) Мое приложение поддерживает ротацию. Когда я прокручиваю таблицу или scrollView и одновременно немного наклоняю устройство, я получаю 1 или 2 FPS. Каков наилучший способ осуществления вращения? Как я понимаю, ShouldAutorotateToInterfaceOrientation
должен быть переопределен во всех контроллерах в цепочке NavigationController. Кроме того, мне нужно добавить наблюдателя в View, я хочу, чтобы произошли некоторые изменения. Нужно ли использовать BeginGeneratingDeviceOrientationNotifications()
во всех представлениях или достаточно сделать это в Main.cs? Может быть, это замедляет это?
3) Через некоторое время приложение начинает получать предупреждения о памяти, а затем в конечном итоге происходит сбой. Я пытался читать журналы и запускать приложение с помощью инструментов, но не могу найти причину сбоя.
4) Что именно происходит с представлением, извлеченным из стека NavigationController? Я не могу использовать это снова. Но может ли быть так, что Монотуш (или я) неправильно распорядился этим?
У меня почти такое же приложение для iPhone без поддержки вращения, которое никогда не падает. Я думаю, что я делаю что-то не так с этим вращением, но я не уверен, что.
Любая помощь будет оценена больше всего. Итак, заранее спасибо.
Привет