私はiOS devを使い慣れていないので、ローカルディレクトリからimageViewにイメージをロードする方法を理解できません。 私はimagePickerControllerを使用してイメージを選択し、その情報を取得し、この情報を使用してイメージをimageViewに表示します。ここでSwift 3ローカルディレクトリからイメージをロード
は、画像とその情報辞書選択するためのコードです:次に
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
let imageUrl = info[UIImagePickerControllerReferenceURL] as! NSURL
let imageName = imageUrl.lastPathComponent
let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
let photoURL = NSURL(fileURLWithPath: documentDirectory)
let localPath = photoURL.appendingPathComponent(imageName!)!
imagesList.append(localPath)
picker.dismiss(animated: true, completion: nil)
}
が、ここで私はいくつかの助けを探していますどこで、私は画像をロードするためにlocalPathにまたはIMAGEURLのいずれかを使用したいです別のimageViewでは、しかし、どのように把握することはできません。 私は試しました
func changeImage(_ sender: Any) {
if imagesList.count > 0 {
let imageUrlPath = imagesList[indexList]
let urlString: String = imageUrlPath.absoluteString
imageView.image = UIImage(contentsOfFile: urlString)
indexList = (indexList + 1) % imagesList.count
}
}
しかし、私は何か動作することはできません。 どのように私はそれを達成することができますか?
ありがとうございました。
あなたは 'imageUrlPath.absoluteString'の代わりに' imageUrlPath.path'を使用する必要があります –
ありがとうございました。エラーはありませんが、画像はimageViewに表示されません。 urlStringを印刷すると、 "/asset.JPG"のみが含まれていると思います。 contentsOfFileに含まれるもの:パス全体(file:/// Users/me/Library/Developer/CoreSimulator/Devices/BF7D44E4-26DD-43EE-5543-D7AB7654F8DC/data/Containers/Data/Application/C9561694- 34E9-46AD-83AA-38F067557F86/Documents/asset.JPG)または、「asset-library://asset/asset.JPG?id = 9A443DCB-EC44-42B8-8773-B597CF782EDD&ext = JPG」のようなもの – radar
パスを印刷してイメージが存在するかどうかを確認してください –