如何使用 UISlider 在 UIScrollView 中放大、缩小?
How to do zoom in, out in UIScrollView using UISlider?
Mainscroll 是添加到另一个内部 UIView 中的滚动视图,我有 UISlider 来更改内部视图比例。
但是,MainScroll.setZoomScale(CGFloat(sender.value), animated: true)
这条线是行不通的。
==> 这是我的代码。
override func viewDidLoad() {
super.viewDidLoad()
MainScroll.maximumZoomScale = 1
MainScroll.minimumZoomScale = 10
MainScroll.delegate = self
MainScroll.zoomScale = 5
}
@IBAction func Scrolling(_ sender: UISlider) {
MainScroll.setZoomScale(CGFloat(sender.value), animated: true)
}
这是让 UIScrollView
缩放的最小示例。
关键是你必须实现 func viewForZooming(in scrollView: UIScrollView) -> UIView?
和 return 一个要缩放的视图(在你的 scrollView 中)(把它想象成你的 'document' 或'canvas' 查看)。
另外,请注意缩放也适用于 scrollView 上的默认捏合手势。
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
// Assume that outlets exist on a storyboard
@IBOutlet var scrollView: UIScrollView!
@IBOutlet var canvas: UIView! // A view that is added in the scrollView
@IBOutlet var slider: UISlider!
let minScale: CGFloat = 1
let maxScale: CGFloat = 10
let initialScale: CGFloat = 1
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
scrollView.minimumZoomScale = minScale
scrollView.maximumZoomScale = maxScale
scrollView.zoomScale = initialScale
slider.minimumValue = Float(minScale)
slider.maximumValue = Float(maxScale)
slider.value = Float(initialScale)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return canvas
}
@IBAction func sliderValueChanged(_ sender: UISlider) {
scrollView.zoomScale = CGFloat(sender.value)
}
}
Mainscroll 是添加到另一个内部 UIView 中的滚动视图,我有 UISlider 来更改内部视图比例。
但是,MainScroll.setZoomScale(CGFloat(sender.value), animated: true)
这条线是行不通的。
==> 这是我的代码。
override func viewDidLoad() {
super.viewDidLoad()
MainScroll.maximumZoomScale = 1
MainScroll.minimumZoomScale = 10
MainScroll.delegate = self
MainScroll.zoomScale = 5
}
@IBAction func Scrolling(_ sender: UISlider) {
MainScroll.setZoomScale(CGFloat(sender.value), animated: true)
}
这是让 UIScrollView
缩放的最小示例。
关键是你必须实现 func viewForZooming(in scrollView: UIScrollView) -> UIView?
和 return 一个要缩放的视图(在你的 scrollView 中)(把它想象成你的 'document' 或'canvas' 查看)。
另外,请注意缩放也适用于 scrollView 上的默认捏合手势。
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
// Assume that outlets exist on a storyboard
@IBOutlet var scrollView: UIScrollView!
@IBOutlet var canvas: UIView! // A view that is added in the scrollView
@IBOutlet var slider: UISlider!
let minScale: CGFloat = 1
let maxScale: CGFloat = 10
let initialScale: CGFloat = 1
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
scrollView.minimumZoomScale = minScale
scrollView.maximumZoomScale = maxScale
scrollView.zoomScale = initialScale
slider.minimumValue = Float(minScale)
slider.maximumValue = Float(maxScale)
slider.value = Float(initialScale)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return canvas
}
@IBAction func sliderValueChanged(_ sender: UISlider) {
scrollView.zoomScale = CGFloat(sender.value)
}
}