2017-01-10 9 views
1

Чтобы выделить вопрос, который я задаю:Отображается множество изображений миниатюр на iOS/tvOS?

  • предположить, что у меня есть локальный доступ ко всем предварительно оказанные эскизов.
  • думаю: внешний вид на встроенном приложении фотографий.
  • миниатюры, возможно, потребуется, чтобы оживить каким-то образом (ы)
  • не нужно прокручивать

Наиболее очевидный класс UICollectionView используется как вид сетки. Но мне интересно, будет ли работать SpriteKit, или, возможно, SceneKit. iOS является основной целью, но поддержка tvOS была бы замечательной.

Мне нужно, чтобы это было для анимации, очевидно, именно поэтому я рассматриваю SpriteKit.

Было бы монументальной задачей для меня заняться входы и выходы Metal и MetalKit, поэтому я надеюсь, что у кого-то есть опыт размещения около 1500 изображений на экране, анимирования их на месте с экрана.

+0

Ну, самая очевидная проблема, которую вы собираетесь иметь с 1500 анимации управления памятью. Вы можете посмотреть здесь одно возможное решение под SpriteKit: http://stackoverflow.com/a/38679128/763355 – MoDJ

+0

Посмотрите. Можно ли поставить 1500 подслоев в единую точку зрения и управлять ими самими? OLD OLD AppKit использовал один/несколько NSCell для наложения больших ячеек таблицы большего размера, чтобы существенно размыть содержимое на экране. –

+0

Ну, вы никогда не будете получать все эти анимации/изображения на экране одновременно из-за ограниченной памяти. Я предполагаю, что вы должны иметь прокрутку какого-то типа или что-то в этом роде, поэтому ключ будет сначала задавать вещи, а затем удерживать только те, которые вам нужны в любой момент времени, в зависимости от вида bbox. Проблема заключается в использовании памяти, вам необходимо решить эту проблему с корнем, и вам, скорее всего, придется хранить декодированные данные в памяти mmap(), чтобы не потреблять все данные напрямую. – MoDJ

ответ

2

Core Animation и SpriteKit были разработаны (совершенно явно в случае Core Animation), чтобы справиться с такой проектной идеей.

Возможно, не в масштабе 1500 экранов, но закон Мура, вероятно, на вашей стороне. И размер изображений тоже.

Оба эти фреймворка могут представлять короткие видеоролики с временным кодированием, которые устраняют большую часть проблемы с памятью, и они могут декодировать множество из них «на лету», особенно если они имеют небольшие размеры. И это будет иметь место, когда вы оптимизируете свое представление, заполненное 1500 «экранами».

Но я бы предложил собрать их вместе в пакетах из 15 или 30 «экранов» и выполнить тест на удар, чтобы определить, к чему его тронули. Что будет ад для пользователей ... потому что:

Если маленькие экраны фильмов являются тем же самым аспектом, что и презентационная сцена, тогда вы будете иметь их размером около 50 х 28 пикселей. На модели iPhone xPlus это TINY!

в порядке, здесь 1500 единиц изображения 1920x1080. Оставьте это на iPhone Plus и посмотреть, если вы можете коснуться только одного из них ...

enter image description here

+0

Спасибо за ввод.Что касается касания/выбора «только один», а) взаимодействие на этом уровне - это то, что я уже рассмотрел, и б) существуют существующие решения для такого рода вещей (т. Е. Приложение «Фотографии») –