Возвращать размер ячейки раскадровки или игнорировать коллекцию в методе делегата sizeForItemAt

, предполагая, что любой файл, который может понадобиться js, должен быть разрешен непосредственно пользователем, создатели известных браузеров вообще не допускают файлы доступа к javascript.

Основная идея решения: javascript не может получить доступ к файлу, указав его локальный URL. но он может использовать файл, имея его DataURL: поэтому, если пользователь просматривает файл и открывает его, js должен получить «DataURL» непосредственно из HTML вместо получения «URL».

Затем он превращает DataURL в файл, используя функцию readAsDataURL и объект FileReader. источник и более полное руководство с хорошим примером:

https://developer.mozilla.org/en-US/docs/Web/API/FileReader?redirectlocale=en-US&redirectslug = DOM% 2FFileReader

0
задан Jacobo Koenig 28 February 2019 в 21:43
поделиться

1 ответ

Я думаю, что

 return self.collectionView(collectionView, layout: UICollectionViewLayout(), sizeForItemAt: IndexPath(item: 0, section: 0))

будет рекурсивно вызывать один и тот же метод много раз, что приведет к сбою, вызванному циклом, плюс, если вы реализовали этот метод sizeForItemAt, вам придется возвращать значение для других коллекций также, поскольку if здесь if collectionView != interestsCollectionView может никогда не совпадать с логикой компилятора, так что вы можете сделать

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
  if collectionView == collectionView1 {
     return CGSize(width:<#w#>,height:<#h#>)
  }
  else if collectionView == collectionView2 {
     return CGSize(width:<#w#>,height:<#h#>)
  }
  else { } // etc
}
0
ответ дан Sh_Khan 28 February 2019 в 21:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: