快速捏合缩放
Posted
技术标签:
【中文标题】快速捏合缩放【英文标题】:Swift pinch to zoom 【发布时间】: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:)
来获取它。
【参考方案1】:
问题出在这一行:
let imageViewBackground = UIImageView(frame: CGRect(x:0, y:0, width:width-70, height:height-60))
删除let
。问题解决了。
【讨论】:
【参考方案2】:抱歉,没有评论的声誉,但可能是您正在初始化 viewDidLoad 内部的滚动视图,而不是使其成为类变量?
【讨论】:
以上是关于快速捏合缩放的主要内容,如果未能解决你的问题,请参考以下文章