Я использую SDWebImag
e для загрузки изображений в UICollectionView
. Затем, когда пользователь нажимает на изображение, я хочу скопировать его в Pasteboard
, чтобы они могли вставить его в другие приложения.Использование SDWebImage для копирования изображения как NSData to Pasteboard
Код, который я использую в методе didSelectItemAtIndexPath
, возвращается в Интернет для копирования изображения. Но изображение должно быть уже в кеше пользователя.
Как использовать SDWebImage
, чтобы получить изображение для NSData
?
Таким образом, приложение сначала проверит кеш для изображения. Я стараюсь использовать DataType
вопросов при попытке использовать SDWebImage
.
Это мой текущий код. Я хочу, чтобы исправить код в didSelectItemAtIndexPath
:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let iCell = collectionView.dequeueReusableCellWithReuseIdentifier("ImageCollectionViewCell", forIndexPath: indexPath) as! ImageCollectionViewCell
let url = NSURL(string: self.imgArray.objectAtIndex(indexPath.row) as! String)
iCell.imgView.sd_setImageWithURL(url)
return iCell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
// Change code below to use SDWebImage
let url = NSURL(string: self.imgArray.objectAtIndex(indexPath.row) as! String)
let data = NSData(contentsOfURL: url!)
if data != nil {
UIPasteboard.generalPasteboard().setData(data!, forPasteboardType: kUTTypePNG as String)
} else {
// Do nothing
}
}
Попробуйте использовать 'let image = SDImageCache.sharedImageCache.imageFromDiskCacheForKey (url!); let data = UIImagePNGRпредставление (изображение); '? Возможно, вам нужно проверить, существует ли «образ» (изображение уже находится в кеше). – Larme
СПАСИБО! Это сработало. И вы правы, я должен проверить, существует ли изображение, иначе оно сработает, если его там нет. Я добавил оператор if, чтобы проверить, что 'image! = Nil' перед' let data = UIImagePNGRepresentation (image) 'еще искать изображение онлайн с моим исходным кодом. –