Могу ли я сделать динамический размер c на основе класса ячеек?
В основном нет. Проблема в том, что вы предполагаете, что во время вызова sizeForItemAt
есть «ячеек», в которых элементы go. Но это не обязательно так. Насколько вам известно, sizeForItemAt
вызывается до того, как появятся любых"ячеек", когда представление коллекции все еще планирует свое расположение.
Именно поэтому вам не дают ячейку в звонок. Вам дан индексный путь . И это должно быть все, что вам нужно. Вы должны быть в состоянии дать ответ, основываясь на индексном пути 1016 *, а не на «ячейке».
И это должно быть легко. В конце концов, предположительно, вы устанавливаете класс ячеек в вашей реализации cellForItemAt
- и вы должны делать это на основе пути индекса, потому что это вся информация, которая у вас есть. Что ж, если вы можете сделать это на основе пути индекса, сделайте это на основе пути индекса здесь.