2016-09-19 3 views
-3

У меня есть следующая кнопка, которая получает данные из ячейки представления коллекции и обменивается строковым URL.Загрузить изображение из строки URL

Однако я ищу средство для загрузки фактического изображения из URL перед совместным использованием. Как это можно сделать в Свифт?

//get buttonViewShareAction and share image 
@IBAction func buttonViewShareAction(sender: UIButton) { 
    print("buttonViewShareAction tapped") 
    let face = self.faces[sender.tag] 

    if let imageURL = NSURL(string:face.image) { 
     print(imageURL) 
    }   

    let shareItems:Array = [face.image] 
    let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil) 
    self.presentViewController(activityViewController, animated: true, completion: nil) 

} 
+0

Можете ли вы уточнить, что вы подразумеваете под «преобразовать строку в реальное изображение«? Какие данные делает строка содержит ? –

+0

pekka данные, содержащиеся внутри строки, представляют собой ссылку только на изображение, каждая ячейка содержит другой URL-адрес для другого изображения. Формат строки таков: 'http://domain.com/i mage.png' – user3591436

+2

То, что вы называете «преобразовать строку в реальное изображение», обычно называется «загрузка данных из URL-адреса, а затем создание изображения из него» и уже неоднократно объяснялось. – Moritz

ответ

0

После получения URL изображения, вы хотите создать NSData из него затем создать UIImage из этих данных.

Swift 3,0

let imageData: Data = try! Data(contentsOf: URL(string: imageURL)!) 
let profileImage = UIImage(data: imageData)! 

Swift 2

let imageData: NSData = NSData(contentsOfURL: NSURL(string: imageURL)!)! 
let profileImage = UIImage(data: imageData)! 
+0

NSData - это то, что мне нужно, после небольшой модификации ваш резак помог решить мою проблему, спасибо. – user3591436

+2

Помните, что 'contentsOfURL' работает синхронно и блокирует весь поток в случае ошибки. – vadian

Смежные вопросы