swift4 AlamofireとImageViewでURLから取得した画像を拡大表示
http://kimagureneet.hatenablog.com/entry/2019/02/27/025807
ここでやったのとほとんど同じ。ちがいは以下だけ
・URLからの画像を表示
・キャッシュとか考えるとAlamofireImage使う
import UIKit
import AlamofireImage
import ImageViewer
class ViewController: UIViewController, GalleryItemsDataSource {
var galleyItem: GalleryItem!
override func viewDidLoad() {
super.viewDidLoad()
let imageView = UIImageView(frame: CGRect(x: 100, y: 100, width: view.frame.width - 100*2, height: 200))
imageView.contentMode = UIImageView.ContentMode.scaleAspectFill
view.addSubview(imageView)
let url = "https://example.com/path/to/img"
imageView.af_setImage(withURL: URL(string: url)!)
galleyItem = GalleryItem.image{ $0(imageView.image) }
imageView.isUserInteractionEnabled = true
let recognizer = UITapGestureRecognizer(target: self, action: #selector(self.onTap(_:)))
imageView.addGestureRecognizer(recognizer)
}
@objc func onTap(_ sender: UIImageView) {
let galleryViewController = GalleryViewController(startIndex: 0, itemsDataSource: self, configuration: [.deleteButtonMode(.none), .seeAllCloseButtonMode(.none), .thumbnailsButtonMode(.none)])
self.present(galleryViewController, animated: true, completion: nil)
}
// MARK: GalleryItemsDataSource
func itemCount() -> Int {
return 1
}
func provideGalleryItem(_ index: Int) -> GalleryItem {
return galleyItem
}
}ネット上の画像を表示することの方が多いのでコピペ用にメモした。以上です