【发布时间】:2019-07-21 19:27:53
【问题描述】:
我正在尝试以编程方式快速添加图像和滚动视图,然后让它们被捏合以进行缩放。
我已按照 UIImageView pinch zoom swift 的说明进行操作,但仍然无法通过捏合进行缩放,我不确定我错过了什么
class mapViewController: UIViewController, UIScrollViewDelegate, IALocationManagerDelegate {
var imageViewBackground: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let width = UIScreen.main.bounds.size.width
let height = UIScreen.main.bounds.size.height
let imageViewBackground = UIImageView(frame: CGRect(x:0, y:0, width:width-70, height:height-60))
var image: UIImage?
let urlString = "https://firebasestorage.googleapis.com/v0/b/coxur-59760.appspot.com/o/Maps%2FCapture.png?alt=media&token=741b1425-cb01-453b-8c40-47f6e5fd528d"
let url = NSURL(string: urlString)! as URL
if let imageData: NSData = NSData(contentsOf: url) {
image = UIImage(data: imageData as Data)
}
imageViewBackground.image = image
// you can change the content mode:
imageViewBackground.contentMode = UIView.ContentMode.scaleAspectFill
var scrollView: UIScrollView!
scrollView = UIScrollView(frame: CGRect(x: 0, y: 120, width: width, height: height))
scrollView.contentSize = CGSize(width: width, height: 2000)
scrollView.delegate = self
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 6.0
scrollView.addSubview(imageViewBackground)
self.view.addSubview(scrollView)
//self.view.sendSubviewToBack(imageViewBackground)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return imageViewBackground
}
}
我在这里做错了什么?
【问题讨论】:
-
这与您提出的实际问题无关,但永远不要永远不要使用远程 URL 调用
NSData(contentsOf: url)。通过适当的方式异步下载图片数据。 -
这是为什么呢?我正在使用远程 url,因为我希望能够在发布应用程序后对其进行更新
-
我没有说不要使用远程 URL。我说不要通过说
NSData(contentsOf:)来获取它。
标签: swift imageview scrollview pinch