У меня есть очень фундаментальный вопрос, поэтому не отправляйте какой-либо код.Каков правильный подход к показу изображения без искажений в виде коллекции
OverView
У меня есть представление коллекции, которая делает использование пользовательского макета, который я написал. Весь этот пользовательский макет делает это, когда он применяет некоторые математические вычисления и обнаруживает оптимальное количество ячеек для размещения на экране по ширине экрана и пытается округлить дополнительные пиксели с помощью прокладки. В результате большая часть моего размера ячеек меняется, когда просмотр коллекции меняет ориентацию, особенно на устройстве, таком как iPad Pro. Я имею в виду, если размер ячейки 300 х 300 в портрете, это может стать 320 х 300, что-то вроде пейзажа. (Они не точные значения, просто пытаются дать идею)
Каждая отдельная ячейка имеет изображение в ней, а изображение необходимо загрузить с сервера. Я использую SDWebImage. Загруженные изображения намного больше, чем мои ячейки, и я не хочу загружать такие большие изображения в память, поэтому я решил, что я буду изменять размер изображения после его загрузки, прежде чем вносить его в SDWebImageCache.
Выпуск
Теперь мои размеры ячеек изменяются на основе ориентации устройства для того, чтобы сделать изображение пиксель идеальным я должен изменить размер изображения, каждый раз, когда устройство вращается для каждой ячейки. Но это приведет к плохой работе.
Solutions Я понял,
Я должен кэшировать два изображения друг один для одной ориентации в SDWeImageCache но то снова увеличит объем памяти приложения.
Найти ячейку самого большого размера можно получить в различной ориентации и изменить размер изображения до этого размера, а затем использовать одно и то же изображение для всего меньшего размера ячейки с изображением, имеющим режим AspectToFit.
Пожалуйста, предложите мне правильный подход. Мне не нужен код, просто нужна идея.
2. кажется самым простым. Я бы пошел с 2 и посмотрел, будет ли результат выглядеть достаточно хорошо (я уверен, что так оно и будет). Если не пойти с 1. – deadbeef
@deadbeef: Спасибо за предложение :) Единственная проблема с решением 2 заключается в том, что я не знаю максимальный размер ячейки, пока пользователь не повернет устройство во все ориентации :(или у меня будет для вычисления начальных размеров для всей ориентации, которая снова должна быть тонкой, поскольку она включает в себя едва ли несколько математических уравнений и должна быть легкой, чем изменение размера самого изображения: D –
Излучаются ли они при повороте устройства? – impression7vx