晚安!
我正在尝试缩放UIScrollView,更具体的所有子视图放在里面。
据我所知,我需要实现UIScrollViewDelegate方法:
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return subView // <--- subview inside my scroll view
}
在我的测试项目中,缩放只是简单地工作,直到我这样做。但是,通过这种技术,我只能缩放(1)单一视图。我的滚动视图有几十个子视图,我想要缩放它们。我可以通过在UIScrollView中放置一个UIView然后在这个容器视图中放置其他子视图来解决这个问题,但我想问一下是否有更好的解决方案?
我使用了自动缩放滚动视图的机制,后来又使用我自己的捏合手势识别器进行了播放:
override func viewDidLoad() {
super.viewDidLoad()
...
let pinchGesture = UIPinchGestureRecognizer(target: self, action: "pinchHandler:")
scrollView.addGestureRecognizer(pinchGesture)
.
.
.
func pinchHandler(recognizer: UIPinchGestureRecognizer)
{
if recognizer.state == UIGestureRecognizerState.Began
{
if recognizer.scale < 1.0 {
scrollView.setZoomScale(1, animated: true)
} else {
scrollView.setZoomScale(2, animated: true)
}
}
}
在这两种情况下,只有1个视图被缩放(一个视图作为viewForZoomingInScrollView函数传递)
谢谢。