我试图让我的图片能够在页面视图控制器内放大和缩小。
层:
- UIPageViewController
---- CustomPageContentController
------滚动型
--------的UIImageView
----------的UIImage
图像显示正常,但我无法通过缩幅放大或缩小。
如何通过swift中的代码启用此操作?
这就是我目前所拥有的:
class PublicationPageView: UIViewController, UIScrollViewDelegate{
var pageIndex:Int = 0
var publicationImageView:UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
println("pageIndex: \(pageIndex)")
publicationImageView.contentMode = UIViewContentMode.ScaleAspectFit
// Need to reposition the image
publicationImageView.frame = CGRectMake(0, 0, view.frame.width, view.frame.height-65-65)
println(publicationImageView.bounds.size)
var scrollView = UIScrollView(frame: CGRectMake(0, 0, view.frame.width, view.frame.height-65-65))
scrollView.addSubview(publicationImageView)
scrollView.contentMode = UIViewContentMode.ScaleAspectFit
scrollView.maximumZoomScale = 4.0
scrollView.minimumZoomScale = 1.0
self.view.addSubview(scrollView)
}
}
这是最佳做法吗?或者有更好的方法来做这件事吗?我愿意接受建议。
提前致谢
答案 0 :(得分:4)
您需要实现UIScrollViewDelegate方法
func viewForZoomingInScrollView(scrollView: UIScrollView!) -> UIView! {
return imageView
}
这里返回UIView以考虑缩放。
答案 1 :(得分:1)
我花了很多时间调试这个并阅读SO答案。这是一个问题:在swift 3中它现在被称为:
func viewForZooming(in scrollView: UIScrollView) -> UIView?
如果您使用旧名称,它不仅可以在不给您任何错误的情况下工作。