滚动视图不缩放和水平滚动在一起?
scroll view doesnt zooming and horizontal scrolling together?
我是 iOS 编程的新手。我想进行缩放和水平滚动。当页面确实加载时,我无法向上滚动捏。当我捏的时候,我就可以滚动了。这是什么原因?
这是我的代码。
override func viewDidLoad() {
super.viewDidLoad()
scrollview.delegate = self
//mark:- for scrolling
let scrollViewFrame = scrollview.frame
let scaleWidth = scrollViewFrame.size.width / scrollview.contentSize.width
let scaleHeight = scrollViewFrame.size.height / scrollview.contentSize.height
let minScale = min(scaleWidth, scaleHeight);
scrollview.minimumZoomScale = minScale;
scrollview.maximumZoomScale = 1.0
scrollview.zoomScale = 0.8
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
statsView.drawStatsView(color: #colorLiteral(red: 0.9529411793, green: 0.6862745285, blue: 0.1333333403, alpha: 1), average: 100, min: 90, max: 110, name: "H")
statsView.drawStatsView(color: #colorLiteral(red: 0.7450980544, green: 0.1568627506, blue: 0.07450980693, alpha: 1), average: 120, min: 102, max: 122, name: "A")
statsView.drawStatsView(color: #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1), average: 145, min: 130, max: 150, name: "Y")
}
override func viewDidLayoutSubviews() {
// bunu bi düşün containera statsView.Container.addConstraint()
scrollview.contentSize = CGSize(width: 720, height: scrollview.frame.height)
scrollview.alwaysBounceHorizontal = false
scrollview.bounces = false
scrollview.clipsToBounds = true
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
print("we re zooming yey")
return statsView
}
三个步骤:
- 首先:确保你的滚动视图有更大的最大缩放比例
比默认值 1.0。您可以在 Interface Builder 中更改它,如果
你想要,或者在代码中使用
maximumZoomScale
属性。
- 使您的视图控制器成为滚动视图的
delegate
。
使您的视图控制器符合 UIScrollViewDelegate
协议,然后添加 viewForZooming(in:)
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
我是 iOS 编程的新手。我想进行缩放和水平滚动。当页面确实加载时,我无法向上滚动捏。当我捏的时候,我就可以滚动了。这是什么原因?
这是我的代码。
override func viewDidLoad() {
super.viewDidLoad()
scrollview.delegate = self
//mark:- for scrolling
let scrollViewFrame = scrollview.frame
let scaleWidth = scrollViewFrame.size.width / scrollview.contentSize.width
let scaleHeight = scrollViewFrame.size.height / scrollview.contentSize.height
let minScale = min(scaleWidth, scaleHeight);
scrollview.minimumZoomScale = minScale;
scrollview.maximumZoomScale = 1.0
scrollview.zoomScale = 0.8
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
statsView.drawStatsView(color: #colorLiteral(red: 0.9529411793, green: 0.6862745285, blue: 0.1333333403, alpha: 1), average: 100, min: 90, max: 110, name: "H")
statsView.drawStatsView(color: #colorLiteral(red: 0.7450980544, green: 0.1568627506, blue: 0.07450980693, alpha: 1), average: 120, min: 102, max: 122, name: "A")
statsView.drawStatsView(color: #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1), average: 145, min: 130, max: 150, name: "Y")
}
override func viewDidLayoutSubviews() {
// bunu bi düşün containera statsView.Container.addConstraint()
scrollview.contentSize = CGSize(width: 720, height: scrollview.frame.height)
scrollview.alwaysBounceHorizontal = false
scrollview.bounces = false
scrollview.clipsToBounds = true
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
print("we re zooming yey")
return statsView
}
三个步骤:
- 首先:确保你的滚动视图有更大的最大缩放比例
比默认值 1.0。您可以在 Interface Builder 中更改它,如果
你想要,或者在代码中使用
maximumZoomScale
属性。 - 使您的视图控制器成为滚动视图的
delegate
。 使您的视图控制器符合
UIScrollViewDelegate
协议,然后添加viewForZooming(in:)
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { return imageView }