1

Я пытаюсь найти способ добавить коллекцию миниатюр видео youtube на UICollectionView. Но в том, как я пытаюсь показать миниатюру (изображение), не отображается, а также я не знаю, как добавить коллекцию (массив) URL-адреса на NSData.Добавление миниатюры Youtube на UICollectionView в swift

Или, если есть другие способы сделать это, например, с помощью API Youtube.

И просто отметить, что я не знаю Obj-C, поэтому любой код в Obj-C не будет очень полезен.

Вот мой код

var videoName:[String] = ["First Video", "Second Video", "Third Video"] 
var videoImage:[String] = ["thumbnail1","thumbnail2","thumbnail3"] 

let thumbnail1 = NSURL(string: "https://www.youtube.com/watch?v=sGF6bOi1NfA/0.jpg") 
let thumbnail2 = NSURL(string: "https://www.youtube.com/watch?v=y71r1jhMdRk/0.jpg") 
let thumbnail3 = NSURL(string: "https://www.youtube.com/watch?v=qfsRZsvraD8/0.jpg") 

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell: SongCollectionView = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! SongCollectionView 

    cell.labelCell.text = videoName[indexPath.row] 
    let imageData = NSData(contentsOfURL: /*videoImage[indexPath.row]*/ thumbnail1!) // in the commented section I am trying to add an array of strings which contains thumbnail URL's 
    cell.imageCell.image = UIImage(data: imageData!) 
    return cell 
} 
+1

'https://www.youtube.com/watch?v=sGF6bOi1NfA/0.jpg 'перенаправляет на видео и не отображает уменьшенное изображение. Вы уверены, что используете правильный URL? – JAL

+0

да u правы такая глупая ошибка thnx –

+0

Каков правильный URL-адрес, пожалуйста? –

ответ

1

Раствор с помощью tuplets, а не два отдельных массивов

let videoData = [("First Video", "sGF6bOi1NfA/0"), ("Second Video","y71r1jhMdRk/0"), ("Third Video", "qfsRZsvraD8/0")] 

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell: SongCollectionView = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! SongCollectionView 
    let (name, token) = videoData[indexPath.row] 

    cell.labelCell.text = name 
    let imageData = NSData(contentsOfURL: NSURL(string: "https://www.youtube.com/watch?v=\(token).jpg")!) 
    cell.imageCell.image = UIImage(data: imageData) 
    return cell 
} 
+0

Jut, чтобы задать еще один дополнительный вопрос. Есть ли лучший способ сделать это (например, не добавлять видеоидентификатор вручную или брать имя видео и т. Д.)? –

+1

это зависит от того, что вы собираетесь выполнить. Например, вы также можете создать структуру, содержащую свойства имени и маркера, и добавить, обновить или удалить экземпляры в изменяемом массиве – vadian